我创建了一个全新的WCF服务。我只是通过添加新项目来创建此服务... - > Visual Studio中的WCF服务。然后,我稍微编辑了合同,如下所示:
[ServiceContract]
public interface IMyService
{
[OperationContract]
[WebGet(UriTemplate = "/Authenticate/{username}/{password}", ResponseFormat = WebMessageFormat.Json)]
bool Authenticate(string username, string password);
}
我的操作如下所示:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(IncludeExceptionDetailInFaults = false)]
public class MyService : IMyService
{
public bool Authenticate(string username, string password)
{
try
{
return false;
}
catch (Exception ex)
{
throw new ApplicationException("Unknown exception");
}
}
}
当我在浏览器窗口中访问:http://localhost:80/MyService.svc/Authenticate/someUserName/somePassword时,会出现一个空白屏幕。我希望JSON语法中出现“false”。我做错了什么?
谢谢!
答案 0 :(得分:0)
使用像Fiddler这样的工具来查看实际的HTTP消息。有助于调试。
其次,您的请求网址是错误的。试试这个:
http://localhost:80/MyService.svc/Authenticate/someUserName/somePassword
你有一个SVC文件,对吗?如果你在IIS中托管它,你将需要它。如果您将自己托管在WebServiceHost对象中,则不需要它们。
using( WebServiceHost host = new WebServiceHost( typeof( MyService) ) )
{
host.Open();
Console.WriteLine( "Service is running" );
Console.WriteLine( "Press enter to quit..." );
Console.ReadLine();
host.Close();
}