【问题标题】:Compile an ASP.Net in a WinForms application在 WinForms 应用程序中编译 ASP.Net
【发布时间】:2010-11-30 20:38:40
【问题描述】:

我正在尝试开发一个代理/客户端,它将侦听给定端口上的 HTTP 请求,并提供一个简单的 ASP.Net 页面。为此,我使用了 HttpListener 和 ApplicationHost 类。

我在我的项目 (mypage.aspx) 中添加了一个简单的页面。当它包含单个文件中的所有代码时,一切都运行良好(通过将<% Response.Write(DateTime.Now.ToString()); %> 添加到页面中的 HTML 并观察浏览器中的时间戳来测试它)。

然后我继续向其中添加一个按钮,添加一个代码隐藏文件 (mypage.aspx.cs) 并手动创建一个设计器文件 (mypage.aspx.designer.cs)。我已经在 .aspx 文件中添加了<%@ Page Language="C#" AutoEventWireup="true" Codebehind="SearchForm.aspx.cs" Inherits="MyNameSpace.MyPage" %> 并验证了所有编译良好。

尝试从浏览器访问网页时,出现以下错误:

说明:期间发生错误 解析所需的资源 服务这个请求。请查阅 以下具体解析错误 详细信息并修改您的源文件 适当的。

解析器错误消息:无法加载 类型 'MyNameSpace.MyPage'。

来源错误

第 1 行:

found out 这意味着我的代码隐藏尚未编译,或者该应用程序找不到程序集。我所有的“bin”目录包含的是原始应用程序的 .exe 和 .pdb - .aspx 没有 .dll。

我尝试了this question 中提供的解决方案并验证了我的 .aspx 和 .cs 文件被标记为“编译”构建操作 - 无济于事。

我的问题是:如何在常规 WinForm 应用程序中编译 .aspx 文件?我可以这样做吗,还是必须求助于将 Web 应用程序添加到我的解决方案中?

【问题讨论】:

  • 那么你的 winforms 应用程序基本上就是 Aspnet 运行时?我认为您需要在实际的 Web 服务器上托管 aspx 页面。
  • 我试图避免使用 IIS。无论如何,我最初的尝试(简单的页面上的 asp 代码)奏效了,证明我不需要 IIS。我仍然认为这是一个编译/位置问题。

标签: asp.net winforms compilation httplistener


【解决方案1】:

看看卡西尼。这是一个由 ASP.NET 团队早先构建的 Web 服务器,允许 Visual Studio 在不需要 IIS 的情况下调试 Web 应用程序。它也是一个独立的网络服务器。可以在 Dmitry 的博客http://blogs.msdn.com/dmitryr/archive/2006/03/09/548131.aspx 上找到源代码

【讨论】:

  • 谢谢 Jason,但我不需要 Web 服务器 - 我有 HTTPListener。我的问题是编译问题。
  • 如果您查看他们如何处理编译,它可能会有所帮助。
猜你喜欢
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
相关资源
最近更新 更多