.Net Web工程IIS發佈經驗總結

IIS環境搭建問題

1. 註冊v4.0版本.netframework

  • 方法 :
    • 1 cdm命令窗體進入該文件夾 命令:
      cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
    • 2 註冊
      aspnet_regiis.exe -i

2. IIS程序池回收問題

iis程序池默認回收時間爲1740分鐘(29小時),若要自定義爲不回收,操作如下,這樣IIS除非手動回收,否則不會自動回收

  • 1 在IIS中找到這個站點所用的程序池,點擊“高級設置…”
  • 2 回收——固定時間間隔(分鐘) 改爲 0
  • 3 回收——虛擬/專用內存限制(KB) 改爲 0
  • 4 進程模型——閒置超時(分鐘) 改爲 0

3. 發佈完工程執行出現如下異常

未能加載文件或程序集XXX或它的某一個依賴項。試圖加載格式不正確的程序在這裏插入圖片描述
問題查找請查看:

  • 1 程序池是否爲4.0
  • 2 修改程序池的 “高級設置”–>啓動32位應用程序爲True
    在這裏插入圖片描述

WebService服務發佈問題

1. HTTP 錯誤 403.14 - Forbidden Web 服務器被配置爲不列出此目錄的內容。

在這裏插入圖片描述
解決方案:IIS的默認文檔裏添加默認首頁即可
在這裏插入圖片描述
在這裏插入圖片描述

Web網站發佈問題

1. 本地IIS發佈一切正常,發佈服務器IIS後Cookie無法寫入導致無法用戶認證問題

解決方案:

  • 1 保證IIS發佈地址都爲域名訪問,而非IP地址
  • 2 本地發佈地址和服務器發佈域名地址的結尾,必須和程序中Cookie Domain(假設設置爲.abcd.com)的設置一樣,則發佈時域名後綴都必須以 .abcd.com結尾,前面是什麼無所謂
  • 3 確認服務器時間,有時候會和本地時區不一致,也會導致Cookie失效

2. 發佈後前端樣式資源403無權加載

解決方案:

  • 1 爲網站訪問的文件夾開設權限
    增加 IIS_IUSRS 或 everyone 的讀寫全開權限
  • 2 若1還未解決,則修改web.config,此法不是很提倡,但能解決問題
    compilation 配置節加 debug=“true”

3. 工程框架版本切換,導致項目運行崩潰問題

該例爲.netframework4.6.1切換至.netframework4.5.2
崩潰原因: Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider 包對framework的兼容性導致

解決方案:

  • 1 web.config修改system.codedom配置節

      <system.codedom>
      	<compilers>
      	  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
          <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
        </compilers>
      </system.codedom>
    
  • 2 工程的.csproj文件添加

    
     <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
    
    

注意: 工程版本切換完後,有時需要重裝IIS所在電腦的.NetFramework環境,特別是當電腦的framework版本低於工程版本時,就必須重裝

END
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章