标签: asmx

42
推荐指数
3
解决办法
2万
查看次数

使用jQuery调用ASP.NET PageMethod/WebMethod - 返回整个页面

jQuery 1.3.2,ASP.NET 2.0.对PageMethod(WebMethod)进行AJAX调用会返回完整/整个页面,而不仅仅是响应.页面方法上的断点显示它永远不会被击中.我的方法有[WebMethod]属性,它 public static,返回string并且不接受params.我甚至尝试在我的班级顶部添加[ScriptService]以查看它是否有帮助,但事实并非如此.

我已经看到这篇帖子Jquery AJAX与ASP.NET WebMethod返回整个页面有相同的症状,但我仍然有问题.我读了http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/,我觉得我跟着这个到了T,但仍然没有运气.

我正在制作的jQuery调用是:

jQuery.ajax({
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: '{}',
    dataType: 'json',
    url: 'MyPage.aspx/SomePageMethod',
    success: function(result){
        alert(result);
    }
});
Run Code Online (Sandbox Code Playgroud)

根据FF3中的Firebug,请求/响应头如下所示

Response Headers
Server  ASP.NET Development Server/8.0.0.0
Date    Tue, 24 Feb 2009 18:58:27 GMT
X-AspNet-Version    2.0.50727
Cache-Control   private
Content-Type    text/html; charset=utf-8
Content-Length  108558
Connection  Close

Request Headers 
Host    localhost:2624
User-Agent  Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Accept  application/json, text/javascript, */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset …
Run Code Online (Sandbox Code Playgroud)

asp.net jquery web-services asmx pagemethods

36
推荐指数
4
解决办法
6万
查看次数

通过jQuery调用ASP.NET服务器端方法

我试图通过jQuery从客户端调用服务器端方法.我的代码如下:

服务器端:

    using System.Web.Services;
    [WebMethod()]
    //[ScriptMethod()]
    public static void SendMessage(string subject, string message, string messageId, string pupilId)
    {
        //Send message
    }
Run Code Online (Sandbox Code Playgroud)

客户端:

$("#btnSendMessage").live("click", function(){
  var subject = $("#tbSubject").val();
  var message = $("#tbMessage").val();
  var messageId = $("#hdnMessageId").val();
  var pupilId = $("#hdnPupilId").val();

  $.ajax({
      type: "POST",
      url: "./MessagePopup.aspx/SendMessage",
      data: ("subject=" + subject + "&message=" + message + "&messageId=" + messageId + "&pupilId=" + pupilId),
      error: function(XMLHttpRequest, textStatus, errorThrown){
          alert(textStatus);
      },
      success: function(result){
         alert("success");
      }
   });
   return false;
});
Run Code Online (Sandbox Code Playgroud)

我在服务器端SendMessage方法上添加了一个断点,但它从来没有打过它,但是当我运行代码时,会调用jQuery成功方法.可能导致这种情况的原因是什么?`

asp.net jquery web-services asmx

35
推荐指数
2
解决办法
9万
查看次数

Web服务 - WCF与ASMX("标准")

我正在开发一个新项目.使用常规旧时尚网络服务的WCF Web服务有什么好处吗?

Visual Studio为两者提供模板.有什么区别?优点和缺点?

.net wcf web-services asmx visual-studio

34
推荐指数
2
解决办法
1万
查看次数

使用Elmah处理Web服务中的异常

有没有办法使用ELMAH全局处理常规ASP.NET Web服务(asmx)中的异常,就像我们在ASP.NET网站中一样?

asp.net web-services elmah asmx

34
推荐指数
2
解决办法
7844
查看次数

捕获SOAP请求到ASP.NET ASMX Web服务

考虑将传入的SOAP请求记录到ASP.NET ASMX Web服务的要求.任务是捕获发送到Web服务的原始XML.

需要记录传入消息以进行调试检查.该应用程序已经有自己的日志库,因此理想的用法是这样的:

//string or XML, it doesn't matter.
string incomingSoapRequest = GetSoapRequest();

Logger.LogMessage(incomingSoapRequest);
Run Code Online (Sandbox Code Playgroud)
  • 是否有任何简单的解决方案来捕获传入SOAP请求的原始XML?
  • 您将处理哪些事件来访问此对象和相关属性?
  • 无论如何IIS是否可以捕获传入的请求并推送到日志?

asp.net soap web-services asmx

30
推荐指数
3
解决办法
5万
查看次数

对于在"/转换"中意外结束的URL,请求格式无法识别1-2天后发生

我正在使用Microsoft.XMLHTTP调用调用web服务:

var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST", "/xxx/Converter.asmx/Convert", false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("conversionFolder=" + escape(conversionFolder));
if (xmlhttp.status == 200) {
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = "false";
  xmlDoc.loadXML(xmlhttp.responseText);
  ... more stuff ...
  return str;
}
else {
  alert(xmlhttp.statusCode + " - " + xmlhttp.statusText);
}
Run Code Online (Sandbox Code Playgroud)

当我记得在本地web.config中添加HttpPost协议时,一切正常.

<?xml version="1.0"?>
<configuration>
  <appSettings/>
  <connectionStrings/>
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
    <compilation debug="false"></compilation>
  </system.web>
  <system.codedom>
  </system.codedom>
  <!--
    The system.webServer section is required for running ASP.NET AJAX under Internet
    Information Services 7.0.  It is not …
Run Code Online (Sandbox Code Playgroud)

asp.net https web-services xmlhttprequest asmx

29
推荐指数
1
解决办法
9977
查看次数

使用jquery调用ascx页面方法

我知道我可以使用以下语法使用jquery调用页面方法

$.ajax({
  type: "POST",
  url: "Default.aspx/GetDate",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    // Replace the div's content with the page method's return.
    $("#Result").text(msg.d);
  }
});
Run Code Online (Sandbox Code Playgroud)

这适用于aspx页面但是可以使用ascx页面吗?(网页控制)

我已经尝试了大约半个小时,因为我无法让它工作,我想知道它是否可能.

注意:为了清楚,当我尝试调用ascx页面时,我正在更新jquery中的url :)

asp.net jquery web-services asmx pagemethods

24
推荐指数
1
解决办法
3万
查看次数

ASMX Web服务请求缓慢

我在一个IIS应用程序中运行了一堆.NET Webservices.这些Web服务由另一个IIS应用程序(前端)使用.第一个电话很慢,大概5到10秒.在那之后它只是几毫秒.第一个电话被认为是性能问题.

我们尝试过调用所有这些Web服务的应用程序,但这显然无法解决任何问题.因此,问题不在于默认的应用程序回收.我创建了一个应用程序,它只是多次初始化服务并测量创建一个实例所需的时间.在运行此应用程序之前,我确保启动/回收我的Web服务应用程序,然后运行该应用程序.第一次初始化需要2到4秒,所有其他的只需几毫秒.

另一个想法是我们在前端应用程序中创建一个页面,启动所有的Web服务,并在任何用户进入之前调用此页面.我不认为这是一个优雅的解决方案,我还能尝试什么?

.net web-services asmx

23
推荐指数
3
解决办法
3万
查看次数

拦截来自客户端的Web服务的SOAP消息

我有一个与Web服务通信的客户端.我与之通信的类是通过wsdl.exe生成的C#类.我现在想记录所有传入和传出的消息.

到目前为止我所做的是编写一个继承自动生成的C#类的类,并重写了GetReaderForMessage方法.这样我可以或多或少地像这样访问传入的消息:

protected override XmlReader GetReaderForMessage(SoapClientMessage message, int bufferSize)
{
    System.Xml.XmlReader aReader = base.GetReaderForMessage(message, bufferSize);
    System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
    doc.Load(aReader);
    string content = doc.InnerXml.ToString();
    System.Xml.XmlReader aReader2 = System.Xml.XmlReader.Create(new System.IO.StringReader(content));

    return aReader2;
}
Run Code Online (Sandbox Code Playgroud)

显然我对这个解决方案不太满意,因为基本上我正在创建两个xml读者.一个用于读取SOAP消息的内容,另一个用于返回方法调用方.另外,我不能用GetWriterForMessage方法做同样的事情.

但也许我只是做起来太困难了.例如,是否可以直接读取SoapClientMessage对象的内容?我已经阅读了一些文章,建议我应该在这里使用SoapExtensions,但是从我能理解的情况来看,只有我创建的'客户'本身就是一个Web服务,在这种情况下它不是.

有什么建议?

c# soap web-services asmx

23
推荐指数
2
解决办法
5万
查看次数