我正在向項目添加新的WCF服務,但新服務與舊服務不一樣。將新的WCF服務添加到現有項目
每個具有類似的SVC文件:
<%@ ServiceHost Language="C#" Debug="true" Service="Company.Project.Service1" %>
每個具有限定所述的ServiceContract和OperationContracts接口:
[ServiceContract]
[ServiceKnownType(typeof(Service1))]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "json/method1", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
ResponseObject Method1(RequestObject req);
}
每個在web.config文件中定義:
<service name="Company.Project.Service1" behaviorConfiguration="ServiceBehavior">
<endpoint address="rest" binding="webHttpBinding" contract="Company.Project.IService1" behaviorConfiguration="web"/>
<endpoint address="soap" binding="basicHttpBinding" contract="Company.Project.IService1"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
但是,當我在其中一個預生產環境中訪問原始服務的URL時在使用Chrome瀏覽器時,我看到我期望的「Method Not Allowed」錯誤(因爲我正在使用GET)。
當我訪問新的服務,我得到一個404錯誤:
Server Error in [Snipped]
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /[Snipped]/Service2.svc/rest/json/method2
另一個奇異之處在於它在我以前的預生產環境中工作,所以它可能只是一些在部署過程。
彰顯預生產的配置與當前一個。我相信你會錯過一些東西。你也可以嘗試'',不過如果你的API針對非.Net客戶端,那麼不建議這樣做。 –
vendettamit
@vendettamit - 我能想到的所有東西都已匹配(SVC文件,界面,web.config中的''部分)。你對我需要看的其他文件/配置部分有任何建議嗎? –
這個問題的其他原因可能是;如果路由未在Global.asax中定義。你能否確認從預生產的全局處理程序的app_start中的代碼和新的env是否匹配? – vendettamit