我在VS2017中有一个非常简单的WCF服务项目。但是当我试图访问端点时,我总是得到错误400。我已经阅读了这里关于同一问题的其他问题,到目前为止,我已经毫无运气地尝试了这些问题。
我的服务合同:
[ServiceContract]
public interface IService
{
[OperationContract]
[WebInvoke(Method = "GET",
BodyStyle = WebMessageBodyStyle.Wrapped,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/GetData/{value}")]
string GetData(string value);
}
我的服务:
public class Service : IService
{
public string GetData(string value)
{
return string.Format("You entered: {0}", value);
}
}
我的web.config:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="myBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="myBehavior" name="WCGFService1.Service">
<endpoint address="" contract="WCGFService1.IService" binding="webHttpBinding">
</endpoint>
</service>
</services>
当我访问
http://localhost:61648/Service.svc/GetData/12
,我收到HTTP 400错误请求。我试过浏览器和邮递员。我做错什么了?
我正在使用VS2017。我的iservice.cs和service.cs位于app_code文件夹中,而
service.svc在根文件夹中。另外,当我尝试添加
name
和;
contract
在web.config中,vs2013建议使用名称空间和接口/类名,而vs2017不建议使用任何内容,因此我必须手动键入它。
此外,在VS2013中,接口和类位于根文件夹中,而不是位于app_code文件夹中。该项目是VS2017中的WCF应用程序。我的.NET版本是4.5.2。