在 Windows Server 2003 上托管 WCF Web 服务

Posted

技术标签:

【中文标题】在 Windows Server 2003 上托管 WCF Web 服务【英文标题】:Hosting WCF Web Serveic on Windows Server 2003 【发布时间】:2011-07-19 14:41:21 【问题描述】:

得到以下错误...

“/”应用程序中的服务器错误。 IIS 指定的认证方案 '集成Windows身份验证, 匿名',但仅具有约束力 支持指定一个 认证方案。有效的 身份验证方案是摘要, 协商、NTLM、基本或匿名。 更改 IIS 设置,以便只有一个 使用单一认证方案。 描述:未处理的异常 在执行过程中发生 当前的网络请求。请查看 堆栈跟踪以获取有关的更多信息 错误及其起源 代码。

异常详情: System.InvalidOperationException:IIS 指定的认证方案 '集成Windows身份验证, 匿名',但仅具有约束力 支持指定一个 认证方案。有效的 身份验证方案是摘要, 协商、NTLM、基本或匿名。 更改 IIS 设置,以便只有一个 使用单一身份验证方案。

来源错误:

产生了一个未处理的异常 在当前执行期间 网络请求。有关的信息 异常的起源和位置 可以使用异常识别 下面的堆栈跟踪。

堆栈跟踪:

[InvalidOperationException: IIS 指定的认证方案 '集成Windows身份验证, 匿名',但仅具有约束力 支持指定一个 认证方案。有效的 身份验证方案是摘要, 协商、NTLM、基本或匿名。 更改 IIS 设置,以便只有一个 使用单一身份验证方案。] System.ServiceModel.Web.WebServiceHost.SetBindingCredentialBasedOnHostedEnvironment(ServiceEndpoint 服务端点,身份验证方案 支持方案)+446264 System.ServiceModel.Web.WebServiceHost.AddAutomaticWebHttpBindingEndpoints(ServiceHost 主机,字典`2 实施合同,字符串 multipleContractsErrorMessage) +709 System.ServiceModel.Web.WebServiceHost.OnOpening() +203 Microsoft.ServiceModel.Web.WebServiceHost2.OnOpening() 在 e:\bt\3781\Microsoft.ServiceModel.Web\Microsoft.ServiceModel.Web\WebServiceHost2.cs:69 System.ServiceModel.Channels.CommunicationObject.Open(时间跨度 超时)+229 System.ServiceModel.HostingManager.ActivateService(字符串 标准化虚拟路径)+121 System.ServiceModel.HostingManager.EnsureServiceAvailable(字符串 normalizedVirtualPath) +479

[服务激活异常: 服务“/Service.svc”不能 期间由于异常而激活 汇编。异常消息 是:IIS指定身份验证 计划 '集成Windows身份验证, 匿名',但仅具有约束力 支持指定一个 认证方案。有效的 身份验证方案是摘要, 协商、NTLM、基本或匿名。 更改 IIS 设置,以便只有一个 单一认证方案是 用过..] System.ServiceModel.AsyncResult.End(IAsyncResult 结果)+11599786 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult 结果)+194 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication 上下文,布尔流上下文)+176 System.ServiceModel.Activation.HttpModule.ProcessRequest(对象 发件人,EventArgs e) +278 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean & completedSynchronously) +75

版本信息:Microsoft .NET 框架版本:2.0.50727.3615; ASP.NET 版本:2.0.50727.3618

【问题讨论】:

因为我在 Win 7 中的本地 PC 上运行相同的已发布服务,但当我尝试这样做时。在 Windows Server 2003 上,它给了我上述错误消息。 【参考方案1】:

根据您上面的错误,您的 Windows 2003 机器上有 IIS authentication configured 以允许两种不同类型的身份验证(集成和匿名)。将其更改为一种身份验证类型 - 与您的 WCF 配置匹配的身份验证类型。我猜你只想在 IIS 配置中启用匿名(而不是集成),但这是你的设计选择..

【讨论】:

以上是关于在 Windows Server 2003 上托管 WCF Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Server 上托管 Python 3.7 烧瓶应用程序?

在 Windows Server 上托管 Ruby 应用程序是不是可行? [关闭]

02Windows Server 2003的域账户管(01)

如何使用 IIS7 服务器在 amazon ec2 windows 实例上托管域名

如何在运行 Tableau Server 的 VM 上托管网站?

如何使用 MongoDB 在 Heroku 上托管我自己的 Parse Server? [关闭]