繁体   English   中英

IIS错误在共享Web主机上托管WCF数据服务

[英]IIS error hosting WCF Data Service on shared web host

我的客户有一个托管在共享Web服务器上的网站。 我无权访问IIS。 我正在尝试将WCF数据服务部署到他的站点上。 我收到此错误:

IIS指定了身份验证方案“ IntegratedWindowsAuthentication,Anonymous”,但是绑定仅支持仅指定一种身份验证方案。 有效的身份验证方案为摘要,协商,NTLM,基本或匿名。 更改IIS设置,以便仅使用单个身份验证方案。

我已经搜索了很多SO和其他站点,但似乎找不到符合我确切情况的人。 我不能更改IIS设置,因为这是第三方服务器,并且是共享的Web服务器。 因此,我唯一的选择是更改代码或服务配置中的内容。 我的服务配置如下所示:

<system.serviceModel xdt:Transform="Insert">
  <serviceHostingEnvironment>
    <baseAddressPrefixFilters>
      <add prefix="http://www.somewebsite.com"/>
    </baseAddressPrefixFilters>
  </serviceHostingEnvironment>
  <bindings>
    <webHttpBinding>
      <binding name="{Binding Name}" >
        <security mode="None" />
      </binding>
    </webHttpBinding>
  </bindings>
  <services>
    <service name="{Namespace to Service}">
      <endpoint address="" binding="webHttpBinding" bindingConfiguration="{Binding Name}" contract="System.Data.Services.IRequestHandler">
      </endpoint>
    </service>
  </services>
</system.serviceModel>

如您所见,我试图将安全模式设置为“无”,但这似乎无济于事。 我应该更改什么来解决此错误?

林也不太清楚这个,但是从阅读文章中,我认为你不能直接从配置设置的验证无法比拟的。

Windows身份验证设置是通过IIS进行的。

在调用任何数据之前,您是否尝试过在代码中执行此操作:

MyDataContext ctx = new MyDataContext(uri); 
ctx.Credentials = System.Net.CredentialCache.DefaultCredentials;  
ctx.Credentials = new NetworkCredential( 
    "username", 
    "password", 
    "domain");

当然,您必须具有用户名,密码和域。

希望有帮助=)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM