0

私のasp.netプロジェクトは、現在http://localhost:51143/default.aspxから実行されています

とにかく、 http://localhost:51143/TOrders/default.aspxのようにこれにルートを含めることができます。これを行う理由は、メニュー クリック イベントで呼び出される URL が「TOrders/Reports」を参照するためです。 /aaa.aspx などであり、運用環境ではイントラネット/TOrders/Reports/aaa.aspx などを参照します。

4

2 に答える 2

0

1つの解決策は、 Global.asaxのApplication_BeginRequestメソッドのすべてのリクエストをインターセプトすることです。そこで、 TOrders/を最初から 削除するルールを作成できます。次のようなものを試してください。

void Application_BeginRequest(object sender, EventArgs e)
{
    if (Request.RawUrl.StartsWith("TOrders/"))
        Server.Transfer(Request.RawUrl.Substring(8));
}

これは最善の解決策ではないかもしれませんが、何をすべきかを理解するのに十分なはずです。

編集:

Webプロジェクト(Webサイトではない)があるので、プロジェクトの仮想パスを設定できます。これがあなたが探しているものだと思います。

VS2010を使用している場合は、ソリューションエクスプローラーでプロジェクトを右クリックして[プロパティ]を選択し、 [ Web ]タブの[サーバー]セクションで、プロジェクトの仮想パスをデフォルト値の/ではなく/TOrders/に変更します。これで、 http:// localhost:51143 / TOrders/default.aspxを取得する必要があります

于 2012-07-21T21:17:20.830 に答える
0

HttpRequest.ApplicationPathプロパティまたはHostingEnvironment.ApplicationVirtualPathプロパティが必要です。

VirtualPathUtilityクラスも仮想パスの構築に役立ちます。

編集:

プロジェクトを Web ルートのサブフォルダーにコピーしてみてください。IIS で:

C:\inetpub\wwwroot\  (or what you set)
C:\inetpub\wwwroot\MyProject\

IIS 管理コンソールの既定の Web で、新しい「アプリケーション」を作成します。既存のフォルダーをアップグレードするか、フォルダーに仮想の新しいフォルダーを作成します。

次に、仮想パス (TOrders) を選択し、物理パスを設定します。また、.NET 4 を使用している場合は AppPool を設定するか、IIS6.x で 2.0/3.5 を使用している場合はランタイムを選択します。最初に最上位バージョンをお試しください...

localhost/TOrders/ に移動します。

于 2012-07-21T20:26:08.677 に答える