尝试从我的服务中获取时,似乎遇到了未找到服务端点的问题。
如果我尝试http://localhost:8000/hello/help我应该看到<string>You entered help <string>
,但我只获得了无端点?我根本没有触及我的配置文件,我只是从一个控制台应用程序托管。
主机:
namespace Host
{
class Program
{
static void Main(string[] args)
{
WebHttpBinding binding = new WebHttpBinding();
WebServiceHost host =
new WebServiceHost(typeof(Service1));
host.AddServiceEndpoint(typeof(IService1),
binding,
"http://localhost:8000/hello");
host.Open();
Console.WriteLine("Hello world service");
Console.WriteLine("Press <RETURN> to end service");
Console.ReadLine();
}
}
}
服务1:
namespace WcfServiceLibrary1
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in both code and config file together.
public class Service1 : IService1
{
public string GetData(string value)
{
return string.Format("You entered: {0}", value);
}
IService1:
[ServiceContract]
public interface IService1
{
[WebGet(UriTemplate = "/{value}")]
string GetData(string value);
答案 0 :(得分:6)
从{value}中删除/并确保将其列为OperationContract
。它应该是:
[WebGet(UriTemplate = "{value}")]
[OperationContract]
基本网址会以斜杠显示,所以你真的在当前代码中寻找http://localhost:8000/hello//help
答案 1 :(得分:0)
在黑暗中刺伤...默认情况下,不允许任意进程侦听网络端口。
安装IIS后,运行IIS的帐户将获得权限 - 如果您希望其他帐户(控制台应用程序,Windows服务)运行的其他应用程序能够侦听端口,则需要授予权限。< / p>
查看netsh add urlacl
命令作为起点。