我疯了我已经阅读了10篇关于stackoverflow的文章,我正在以宁静的方式调用webservice并且应该在服务和webconfig中启用它,所以我这样做但是只要我添加[WebGet( )]属性我得到这个疯狂的错误,如果我删除它然后服务得到无缝调用
我正在使用
这是我的代码
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode
=AspNetCompatibilityRequirementsMode.Allowed)]
public class Service2
{
[OperationContract]
[WebGet()]
public List<Table1> GetCustomers(string numberToFetch)
{
using (DataClassesDataContext context = new DataClassesDataContext())
{
return context.Table1s.Take(numberToFetch).ToList( );
}
}
}
和我的ASPX页面代码
<body xmlns:sys="javascript:Sys"
xmlns:dataview="javascript:Sys.UI.DataView">
<div id="CustomerView"
class="sys-template"
sys:attach="dataview"
dataview:autofetch="true"
dataview:dataprovider="Service2.svc"
dataview:fetchParameters="{{ {numberToFetch: 2} }}"
dataview:fetchoperation="GetCustomers">
<ul>
<li>{{name}}</li>
</ul>
</div>
和我的Web.config代码
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="Service2AspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="Service2">
<endpoint address="" behaviorConfiguration="Service2AspNetAjaxBehavior"
binding="webHttpBinding" contract="Service2" />
</service>
</services>
</system.serviceModel>
非常感谢帮助
答案 0 :(得分:2)
尝试添加方法修饰:
[WebInvoke(Method = "GET")]
此外,如果您尝试向其他域或端口上的服务发出请求,则会在Firefox中遇到跨域问题。因此,如果您的Web应用程序在localhost:80
运行且您的WCF服务设置为localhost:10305
,则Firefox将返回405。