我正在尝试获取WCF休息服务模板40(CS),它是VS 2010中的在线模板,可部署到Win Server 2008 R2上的IIS 7.5。我们根本没有改变模板,并试图让这个调用工作:
public class Service1
{
// TODO: Implement the collection resource that will contain the SampleItem instances
[WebGet(UriTemplate = "")]
public List<SampleItem> GetCollection()
{
// TODO: Replace the current implementation to return a collection of SampleItem instances
return new List<SampleItem>() { new SampleItem() { Id = 1, StringValue = "Hello" } };
} ....
我们尝试过:
<%@ServiceHost language=c# Debug="true" Service="WcfRestService2.Service1"%>
我正在把头发拉过来,抱歉我不能更具体地说明究竟发生了什么。我们遇到的问题是通过IIS无法找到http://localhost/Service1等服务调用,但它们在VS中运行良好。
这是webservice文件:
答案 0 :(得分:2)
经过多次挫折后终于找到了如何使其发挥作用。
您必须在IIS中启用 HTTP重定向。
这可以通过
来完成答案 1 :(得分:0)
默认情况下,当你切换到发布到IIS时,它会对vdir而不是网站root进行,所以我猜你需要检查它正在安装的vdir(项目属性,web)并更改url你试图访问http://localhost/WcfRestService1/Service1(或其他)。
当我从模板创建项目时,切换到IIS发布,点击F5,然后点击该网址,我得到预期的输出就好了:
<ArrayOfSampleItem xmlns="http://schemas.datacontract.org/2004/07/WcfRestService1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<SampleItem>
<Id>1</Id>
<StringValue>Hello</StringValue>
</SampleItem>
</ArrayOfSampleItem>