【发布时间】: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