WinForms アプリケーションで ASP.Net をコンパイルする
-
13-09-2019 - |
質問
特定のポートで HTTP 要求をリッスンし、単純な ASP.Net ページを提供するエージェント/クライアントを開発しようとしています。そのために、私は HttpListener クラスと ApplicationHost クラスを使用しています。
プロジェクトに簡単なページ (mypage.aspx) を追加しました。すべてのコードが 1 つのファイルに含まれている場合、すべてがうまく機能しました (追加してテストしました) <% Response.Write(DateTime.Now.ToString()); %>
ページ内の HTML に変換し、ブラウザーでタイムスタンプを観察します)。
次に、ボタンを 1 つ追加し、分離コード ファイル (mypage.aspx.cs) を追加し、デザイナー ファイル (mypage.aspx.designer.cs) を手動で作成しました。私は追加しました <%@ Page Language="C#" AutoEventWireup="true" Codebehind="SearchForm.aspx.cs" Inherits="MyNameSpace.MyPage" %>
.aspx ファイルにコピーし、すべてが適切にコンパイルされることを確認しました。
ブラウザから Web ページにアクセスしようとすると、次のエラーが表示されます。
説明:このリクエストのサービスに必要なリソースの解析中にエラーが発生しました。次の特定の解析エラーの詳細を確認し、ソースファイルを適切に変更してください。
パーサーエラーメッセージ:タイプ「mynamespace.mypage」をロードできませんでした。
ソースエラー:
ライン1:<%@ page Language = "c#" autoeventwireup = "true" codebehind = "mypage.aspx.cs" ensulits = "mynamespace.mypage"%>
私 見つけた これは、分離コードがコンパイルされていない、またはアプリケーションがアセンブリを見つけられないことを意味します。私の "bin" ディレクトリには、元のアプリケーションの .exe と .pdb だけが含まれています。.aspx の .dll はありません。
で提供されている解決策を試しました この質問 .aspx および .cs ファイルが「コンパイル」ビルド アクションとしてマークされていることを確認しましたが、役に立ちませんでした。
私の質問は次のとおりです。.aspx ファイルを通常の WinForm アプリケーションでコンパイルするにはどうすればよいですか?それはできますか? それとも、ソリューションに Web アプリケーションを追加する必要がありますか?
解決
カッシーニをチェックしてください。これは、Visual Studio が IIS を必要とせずに Web アプリケーションをデバッグできるようにするために、ASP.NET チームによってしばらく前に構築された Web サーバーです。これはスタンドアロンの Web サーバーでもあります。ソースは Dmitry のブログで見つけることができます。 http://blogs.msdn.com/dmitryr/archive/2006/03/09/548131.aspx