1
我想在共享主機服務器上訪問我的WCF服務,但我可以使用該服務,但是當我嘗試調用該服務時,我收到「調用方未通過服務進行身份驗證」錯誤。共享提供商上的主機WCF服務
客戶端的app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_TicketingService" clientBaseAddress="http://mmservice.somee.com:8001/MMService.Ticketing.svc" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" />
<security mode="Message">
<message clientCredentialType="IssuedToken" negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://mmservice.somee.com/MMService.Ticketing.svc"
binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_TicketingService"
contract="MMService.TicketingService" name="WSDualHttpBinding_TicketingService">
<identity>
<servicePrincipalName value="host/vb5100" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
服務的app.config
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true"/>
<customErrors mode="Off"/>
</system.web>
<system.serviceModel>
<client>
</client>
<serviceHostingEnvironment multipleSiteBindingsEnabled="True"/>
<services>
<service behaviorConfiguration="MMService.Service1Behavior" name="MMService.Ticketing">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:8732/Design_Time_Addresses/MMService/Service1/"/>
</baseAddresses>
</host>
<endpoint address ="" binding="wsDualHttpBinding" bindingConfiguration="" contract="MMService.ITicketService">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MMService.Service1Behavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
有人知道如何解決這一問題?謝謝。
大多數共享主機服務不支持net.tcp(防火牆限制)。 somee.com可能不太好。如果是這種情況,那麼你必須改變你的綁定來使用基於HTTP的綁定。 – carlosfigueira
好吧,我已經將它更改爲wsDualHttpBinding,並且我可以在服務器上看到該服務,並且可以對其進行調用,但是當我嘗試訪問它時,我仍然接受調用程序未通過服務錯誤進行身份驗證。我編輯我的問題是關於這個新問題。 – Lost
PS:我現在已將客戶端的安全模式更改爲「無」,因此服務位於不同的網絡上,因此Windows憑據無法工作。我也刪除了身份,現在我得到一個超時錯誤或一個沒有端點是聽錯誤。我不知道我做了什麼幫助或傷害,但它似乎合乎邏輯。 – Lost