Could not load type ‘System.ServiceModel.Activation.HttpModule‘ from assembly ‘System.ServiceModel

昨天有个同事在服务器上装arcmap,提示需要.net framework 3.5 sp1或以上支持。可笑,系统都已经安装.NET 4.6了,肯定是没有问题的。查了下,说是WIN 10或者一些windows服务器没有默认打开.NET 3.5的缘故。于是进去控制面板,服务器管理,然后将相关功能。net 3.5勾上,arcmap安装继续。

在这里插入图片描述

然后今天用户说,系统打不开了。出现了报错画面
在这里插入图片描述
该同事昨天在告诉我问题前,自行到IIS上捣鼓,妄图将IIS从.NET2.0切换到.NET4.0,其实就是下拉框,说:好奇怪哦,选了4.0以后,重启IIS回来,又变成2.0了。
在这里插入图片描述
也不知道是同事的操作导致了问题,还是我的勾选导致了问题。嫌我还不够忙碌是吗,问题永远在我焦头烂额,即使三头六臂也忙不过来的情况下出现。

进服务器看,点击根节点,选ISAPI和CGI限制,发现不允许.net4.0,设为允许。问题依然存在。

从情况看,IIS遭到了更改。难道要重装.NET4.6?时间太长,查了下,说是重新注册下:

C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -iru

在服务器上运行该命令,报错!!!

根据报错提示,打开日志,原来是IIS上有些应用程序找不到路径。因为几经变迁,有些文件夹删掉了,IIS这里又没有去掉。删除这些无用的应用程序,重新运行命令,问题解决。

我记得注册.NET到IIS,参数是-i,这个 -iru 有什么不同。估计是做得工作比重新注册.NET要少。不管了。

### 关于 `System.ServiceModel` 的配置与使用 #### 配置 WCF 服务中的 `System.ServiceModel` 在 Windows Communication Foundation (WCF) 中,`System.ServiceModel` 是核心命名空间之一,用于定义所有基本类型和服务模型类。为了正确配置并使用这些功能,在应用程序配置文件(通常是 Web.config 或 App.config 文件)中需设置适当的服务模型部分。 对于 IIS 8 及更高版本上遇到的特定问题——即无法加载 `System.ServiceModel.Activation.HttpModule` 错误[^1],这通常是因为.NET Framework 版本之间的冲突引起。当先安装了 .NET Framework 4 并之后启用了 .NET Framework 3.5 WCF HTTP 激活时可能出现此类情况[^2]。解决办法可以尝试重新注册 ASP.NET 或者调整应用池框架版本来匹配项目需求。 以下是典型的 `<system.serviceModel>` 配置片段: ```xml <configuration> <system.serviceModel> <!-- 定义绑定 --> <bindings> <basicHttpBinding> <binding name="BasicHttpEndpointBinding"> <security mode="None"/> </binding> </basicHttpBinding> </bindings> <!-- 设置服务行为 --> <behaviors> <serviceBehaviors> <behavior name="DefaultBehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <!-- 注册服务端点 --> <services> <service behaviorConfiguration="DefaultBehavior" name="YourNamespace.YourServiceClass"> <endpoint address="" binding="basicHttpBinding" contract="YourNamespace.IYourServiceContract" /> <!-- 如果需要元数据交换支持 --> <endpoint kind="mexEndpoint" address="mex" /> </service> </services> <!-- 启用诊断追踪(可选) --> <diagnostics wmiProviderEnabled="true"> <messageLogging logEntireMessage="true" maxMessagesToLog="300" maxSizeOfMessageToLog="2000"/> </diagnostics> </system.serviceModel> </configuration> ``` 这段 XML 展示了一个基础的 WCF 服务配置实例,其中包含了如何指定绑定、行为以及暴露给客户端访问的具体终结点地址等信息。通过修改上述参数能够满足不同场景下的通信需求。 另外值得注意的是,在某些情况下可能会遭遇协议级别的异常,比如读取消息格式失败或安全协商错误等问题。针对前者可能是由于消息体不完整造成的;而后者则往往涉及到身份验证机制上的差异[^3][^4]。面对这类状况建议仔细审查日志记录,并依据具体提示采取相应的措施加以修复。 最后关于 Core 应用部署过程中缺失 `System.Private.ServiceModel.dll` 的情形,确保随同其他依赖项一同发布至目标环境是非常重要的一步操作[^5]。特别是跨平台开发环境下更应关注运行库兼容性方面的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值