我看过很多例子,甚至以前在一些 WCF 代码上工作过,可能还没有完全理解它。现在我正在尝试自己实现它,我似乎无法让它工作,所以我正在寻找一些技巧!
这是我的情况:
好 - 我可以构建服务库并将其托管在服务应用程序或 IIS7 中,这两种方法都给了我成功的结果,因为我可以通过在浏览器中输入 .svc 文件的位置来查看服务。
不好 - 我需要通过 javascript 连接到服务,但是通过 json 连接到 localhost 会给我“无传输”,或者如果我尝试通过 jsonp 连接到我的托管服务器给我“成功”但响应未定义(应该是你好世界回应..)
这是我在服务上的配置文件:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
这是我的json JS:
$.ajax({
url: "http://10.8.8.53/Schools/SchoolsService.svc/TestSchoolVal1",
dataType: "json",
timeout: 10000,
data: "4",
type: "POST",
success: function (data, textStatus, jqXHR) {
},
error: function (jqXHR, textStatus, errorThrown) {
},
complete: function (jqXHR, textStatus) {
}
});
jsonp 代码相同,只是使用 jsonp 而不是 json 并定义了 jsonpcallback 函数。
有什么建议么?我需要同时获取本地主机和我的 IIS7!
我还尝试在 Visual Studio 中包含外部引用,它会生成更多 web.config - 但我想通过 javascript 访问 svn,而不是后端代码!
更多信息:服务命名空间是 SchoolsWCF,类是 Service1,服务文件是 SchoolsService.svc,方法是采用 int 参数的 TestSchoolVal1,本地主机托管应用程序是 Windows 控制台应用程序。