IIS發佈 Web & WebService工程常見問題總結

一. 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
    在這裏插入圖片描述
4. 應用程序池啓動失敗

問題描述: IIS應用程序池在關閉後重新進行啓動,啓動報錯:“服務無法在此時接受控制信息。 (異常來自 HRESULT:0x80070425)”

解決方案:
用管理員方式打開命令行,輸入命令 netsh winsock reset

這個命令在百科上的解釋是:

netsh winsock reset命令,作用是重置 Winsock 目錄。如果一臺機器上的Winsock協議配置有問題的話將會導致網絡連接等問題,就需要用netsh winsock reset命令來重置Winsock目錄藉以恢復網絡。

注意:命令執行後,會提示重啓計算機後生效,實際上不重啓也可以恢復的。

5. 由於擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程序。如果應下載文件,請添加 MIME 映射
  • WCF服務啓動報錯
    在這裏插入圖片描述
  • 解決方案
    管理員身份運行C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation
    執行命令 ServiceModelReg.exe -i

二. WebService服務發佈問題

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

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

2. 瀏覽器顯示:測試窗體只能用來來自本地計算機的請求

在本地測試可以正常輸入參數,但發佈後,在本地訪問呢測試地址,發現沒有輸入參數的地方了。

原因:
本地服務器沒有開啓遠程訪問

解決方案:
在web.config的<system.web>中間加入如下配置節內容

<webServices>
   <protocols>
      <add name="HttpSoap"/>
      <add name="HttpPost"/>
      <add name="HttpGet"/>
      <add name="Documentation"/>
   </protocols>
</webServices>

3. 服務端超時時間設置

web端調用超時配置見下方(三–7)

 <system.web>
    <httpRuntime executionTimeout="300000" /> <!--超時設置300s-->
    <customErrors mode="Off" /> <!--錯誤信息顯示-->
 </system.web>

4. 服務調試localhost換成IP後訪問不到地址

  1. 啓動服務,右擊任務欄IIS Express,點擊“顯示所有應用程序”

右擊

  1. 選中要設置的服務,點擊紅框的配置
    在這裏插入圖片描述

  2. 找到該服務的site節點,新增一條binding,綁定本機IP即可
    在這裏插入圖片描述

三. 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版本低於工程版本時,就必須重裝

4. HTTP 錯誤 403.14 - Forbidden

在這裏插入圖片描述
解決方案:web.config添加配置

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>

5. 解決網頁出現 net::ERR_ABORTED 404 (Not Found)問題

1、在Web.config中的system.webServer節點添加woff字體的MIME類型

	<staticContent>
		<remove fileExtension=".woff" />
		<mimeMap fileExtension=".woff" mimeType="font/x-font-woff" />
	</staticContent>

2、 或在IIS中添加woff字體的MIME類型
在這裏插入圖片描述
在這裏插入圖片描述

6. 解決Web端調用接口數據量過大無法傳輸問題

服務端工程的配置文件增加配置

  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="102400000" />
      </webServices>
    </scripting>
  </system.web.extensions>
  
  <system.web>
    <httpRuntime executionTimeout="600" maxRequestLength="102400000" />
  </system.web>
  
  <system.webServer>
    <security>
        <requestFiltering>
           <requestLimits maxAllowedContentLength="102400000" />
        </requestFiltering>
    </security>
  </system.webServer>

7. 調用webservice超時&請求字節數配置

 <basicHttpBinding>
   <binding name="MyWebServiceSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" sendTimeout="00:10:00" receiveTimeout="00:10:00">
     <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
   </binding>
 </basicHttpBinding>
END
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章