我有一个SoapExtension,旨在记录所有SOAP请求和响应.它适用于使用MS Soap Toolkit(OnBase Workflow)的应用程序调用.但它不适用于$ .ajax()在html页面上进行的调用.这是一个例子:
$.ajax({
type: "POST",
url: url,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json"
});
Run Code Online (Sandbox Code Playgroud)
它调用标记有WebService和ScriptService属性的ASP.NET 3.5 WebService:
[WebService(Namespace = XmlSerializationService.DefaultNamespace)]
[ScriptService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class DepartmentAssigneeService : WebService
{
private readonly DepartmentAssigneeController _controller = new DepartmentAssigneeController();
/// <summary>
/// Fetches the role items.
/// </summary>
/// <returns></returns>
[WebMethod]
[SoapLog]
public ListItem[] FetchDepartmentItems()
{
return CreateListItems(_controller.FetchDepartments());
}
}
Run Code Online (Sandbox Code Playgroud)
以下是SoapExtension和SoapExtensionAttribute的基础知识:
public class LoggingSoapExtension : SoapExtension, IDisposable { /*...*/ }
[AttributeUsage(AttributeTargets.Method)]
public sealed class SoapLogAttribute : SoapExtensionAttribute { …Run Code Online (Sandbox Code Playgroud) 我们正在建立一个CMS.该站点将由aspx页面中的用户构建和管理,但我们想创建一个HTML的静态站点.我们现在的方式是使用我在这里找到的代码重载Aspx页面中的Render方法并将HTML字符串写入文件.这适用于单个页面,但我们的CMS就是我们想要从一开始就为网站自动创建一些HTML页面,甚至在创建者编辑系统中的任何内容之前.有谁知道有任何方法可以做到这一点?
我正在使用一个相当大的.net Web应用程序.
用户希望能够将报告导出为PDF.由于报告基于多层数据的聚合,因此获得准确快照的最佳方法是实际获取UI的快照.我可以获取UI的html并将其解析为PDF文件.
由于UI可能需要最多30秒才能加载,但结果永远不会改变,我会在项目保存在后台线程中时立即缓存pdf.
我对这种方法的主要关注是,如果我浏览UI,我不得不担心超时.虽然后台线程等可以持续所需的时间,但aspx页面只能持续很长时间才能终止它们.
我有两个想法如何照顾这个.第一个想法是创建一个加载UI的aspx页面,覆盖渲染,并将渲染的数据存储到数据库中.后台线程将在内部对该页面进行WebRequest,然后从数据库中获取结果.这显然必须考虑安全性,如果UI生成时间太长,还需要担心超时.
另一个想法是创建一个页面对象并在代码中手动填充它,手动调用相关的方法,然后从中获取数据.除了不知道怎么做之外,该方法的问题在于,我担心我可能忘记调用方法或某些东西可能无法正常工作,因为它实际上并不与真实会话或网络服务器相关联.
在后台线程中模拟页面UI的最佳方法是什么?