一. IIS环境搭建问题
1. 注册v4.0版本.netframework
- 方法 :
- 1 cdm命令窗体进入该文件夹 命令:
cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
- 2 注册
aspnet_regiis.exe -i
- 1 cdm命令窗体进入该文件夹 命令:
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后访问不到地址
- 启动服务,右击任务栏IIS Express,点击“显示所有应用程序”
-
选中要设置的服务,点击红框的配置
-
找到该服务的
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=\"Web\" /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 |