我有两个问题,但我认为它们之间有某种联系。
我做了一个WCF Rest服务,用。net 4,只在https上。在我的本地电脑上,一切正常。
现在我将它部署到一个托管提供商。据我所知,所有的请求都要经过ISA服务器。
起初,它不起作用。我试了很多,但我总是得到错误404,资源没有找到。具体错误为:
[EndpointNotFoundException]: There was no channel actively listening at
'http://mydomainname/items/help'.
This is often caused by an incorrect address URI.
Ensure that the address to which the message is sent matches
an address on which a service is listening.
我看到的第一件事是异常中的URL不是https。好吧,奇怪,因为我的网。配置为:
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpsGetEnabled="true" />
<serviceAuthorization serviceAuthorizationManagerType="myNamespace.APIKeyAuthorization, myNamespace" />
</behavior>
</serviceBehaviors>
...
<webHttpBinding>
<binding name="">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</webHttpBinding>
...
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" defaultOutgoingResponseFormat="Json">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</standardEndpoint>
</webHttpEndpoint>
所以我尝试了很多东西,但最后我成功了。我只是把名字写在了每个地方。在行为标记中,绑定和标准端点标记。它有效!!好的,几乎。现在我所有的结果都是XML格式的。我没有json。即使使用"Accept: application/json"或"Accept: text/json"这一行,它也总是在XML中。即使我将automaticFormatSelectionEnabled设置为false。并添加"帮助"到URL,如"https://mydomainname/items/help",我得到了一个"端点未找到"
所以,现在我迷路了,因为我不理解WCF中的所有微小配置以使一切正常工作。希望你能帮助我。
提前感谢。
m .
好的,我不知道它是否可以被认为是好的答案,但管理员在ISA服务器上做了一些事情。所以现在它完全工作了。
m .