我对WCF和ASMX Web服务感到困惑.我在早期阶段使用了很多Web服务,现在引入了一个名为WCF的新东西.我仍然可以创建作为Web服务的WCF.我认为WCF会有更多东西.
WCF和Web服务之间有什么区别?什么时候应该使用?
我正试图在我当前的项目中解决一个Web服务客户端问题.我不确定服务服务器的平台(很可能是LAMP).我相信他们身边有一个错误,因为我已经消除了我的客户的潜在问题.客户端是从服务WSDL自动生成的标准ASMX类型Web引用代理.
我需要得到的是RAW SOAP消息(请求和响应)
最好的方法是什么?
我想为HTTP POST和GET请求启用ASP.NET经典(ASMX)Web服务.我意识到这可以通过添加...在机器或应用程序级别完成
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
Run Code Online (Sandbox Code Playgroud)
..到machine.config或web.config.我的问题是,对于每个Web服务或Web方法级别而不是每个应用程序或计算机,是否可以启用HTTP POST和GET请求?
我的Web服务使用net 3.5sp1用c#编写.
我创建了一个带有代码隐藏文件的ASMX文件.它工作正常,但它输出XML.
但是,我需要输出JSON.ResponseFormat配置似乎不起作用.我的代码隐藏是:
[System.Web.Script.Services.ScriptService]
public class _default : System.Web.Services.WebService {
[WebMethod]
[ScriptMethod(UseHttpGet = true,ResponseFormat = ResponseFormat.Json)]
public string[] UserDetails()
{
return new string[] { "abc", "def" };
}
}
Run Code Online (Sandbox Code Playgroud) 我从a WebMethod
中返回的每个对象都ScriptService
被包装到一个JSON对象中,并且数据位于一个名为的属性中d
.没关系.但我不希望将附加__type
属性提供给客户端,因为我使用jQuery进行手动处理.
可能吗?
我有一个WSDL文件,我正在尝试创建一个符合WSDL的Web服务.
我使用使用现有服务的WSDL文件创建了客户端,但我从未创建过需要遵循特定WSDL的Web服务.
我已经使用了:
wsdl.exe mywsdl.wsdl /l:VB /serverInterface
现在我有一个从该WSDL生成的.vb文件.但是我不确定我应该用这个VB文件做什么.看起来它有一个公共接口,但没有实现接口的类.它还有一堆WSDL中类型的部分类.
我期待有一些存根,我在代码中填写服务调用.我以前只创建过简单的Web服务,但没有一个使用公共接口,所以我不熟悉这里发生的事情.
此时我不确定如何使用生成的.vb文件并使其与.asmx文件一起使用以及完成界面需要哪些其他编码.
我是.Net的新手,并不了解其中的差别.有人能指出我正确的方向吗?
为什么这个简单的Web服务拒绝将JSON返回给客户端?
这是我的客户端代码:
var params = { };
$.ajax({
url: "/Services/SessionServices.asmx/HelloWorld",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
timeout: 10000,
data: JSON.stringify(params),
success: function (response) {
console.log(response);
}
});
Run Code Online (Sandbox Code Playgroud)
和服务:
namespace myproject.frontend.Services
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
public class SessionServices : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
return "Hello World";
}
}
}
Run Code Online (Sandbox Code Playgroud)
web.config中:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
并回应:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Hello World</string>
Run Code Online (Sandbox Code Playgroud)
无论我做什么,响应总是以XML形式返回.如何让Web服务返回Json?
编辑:
这是Fiddler HTTP跟踪: …
客户端为我提供了生成Web服务的wsdl.但是当我使用wsdl.exe命令时,它生成了.cs类.我在我的Web服务中使用了该类,当我向客户端提供wsdl时,它与它们的模式不匹配.实际上我希望从wsdl自动生成.asmx,以便我可以填写web方法.这样它就会完全匹配他们的架构.希望它有意义.