簡體   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