【问题标题】:How to run aspx.cs file immediately on url load如何在 url 加载时立即运行 aspx.cs 文件
【发布时间】:2013-02-12 16:17:27
【问题描述】:

抱歉,我不确定如何提出这个问题。

我要做的是创建一个 Web 服务,当 URL 被点击时(一个 .swf 文件将发送请求并发送信息),Web 服务会发送一封电子邮件。

所以基本上如果浏览器点击一个 url,比如 mywebsite.com/smtp/,它会加载一个发送电子邮件的 aspx.cs 文件。我不想让浏览器打开 mywebsite.com/smtp/sendemail.aspx。

基本上,我只想通过点击链接在我的网络服务器上运行 .cs 文件。

我假设我只需要 .aspx 文件中的一些代码即可立即加载 aspx.cs 文件。

有什么想法或帮助吗?抱歉,我做了研究,只是不确定如何在谷歌中表达这个问题。

【问题讨论】:

  • 我认为您需要使用 WCF 服务或 ASP.NET Web 服务,而不是 ASPX(网页)——请参阅 MSDN 上的此参考资料msdn.microsoft.com/en-us/library/ms972326.aspx
  • 你希望用户看到什么?
  • 每个包含代码的页面都将在“加载 url 时立即”运行其代码(假设您有一些代码,例如构造函数) - 不完全确定您的要求。

标签: c# asp.net service web


【解决方案1】:

有很多方法可以做到这一点。我认为最简单的应该是 HTTPHandler。

http://support.microsoft.com/kb/308001

【讨论】:

    【解决方案2】:

    首先我建议您为此使用一个处理程序(以 .ashx 结尾)

    现在,没有像 cs 先运行,aspx 后运行这样的想法。有一个完整的页面运行,做一些事情(可以是发送电子邮件),呈现并返回一个 html 页面。

    在该部分中,您可以通过发送无内容来简单地取消 html 的返回:

    Response.TrySkipIisCustomErrors = true;
    Response.Status = "204 No Content";
    Response.StatusCode = 204;
    

    并以Response.End(); 结束页面循环,或者使用我说你不需要的处理程序。

    【讨论】:

      【解决方案3】:

      如果我理解这个问题,您可以通过在该目录上设置一个默认页面(在 IIS 设置中)来做到这一点。因此,您可以将 sendemail.aspx 设置为 smtp 虚拟目录中的默认页面,而对 /smtp/ 的请求将由 sendemail.aspx 处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-16
        • 2015-05-10
        • 1970-01-01
        • 1970-01-01
        • 2020-07-27
        • 2020-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多