-1

MVCアーキテクチャを使用していないasp.netプロジェクトの1つでルーティングを使用しています... PCやWindowsサーバー2003でも動作しています。

以下はglobal.asaxファイルの私のコードです:

 Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        If ConfigurationManager.AppSettings("SeoFriendlyUrl") = "true" Then
            RegisterRoutes(RouteTable.Routes)
        End If
    End Sub

    Public Shared Sub RegisterRoutes(routes As RouteCollection)
        routes.MapPageRoute("HomePage", "", "~/index.aspx", True)
        routes.MapPageRoute("SignUpRoute", "SignUp", "~/Register.aspx", True)
        routes.MapPageRoute("WorkWithUsRoute", "Work-With-Us", "~/WorkWithUs.aspx", True)
        routes.MapPageRoute("AdvertiseWithUsRoute", "Advertise-With-Us", "~/AdvertiseWithUs.aspx", True)
        routes.MapPageRoute("PrivacyRoute", "PrivacyPolicy", "~/PrivacyPolicy.aspx", True)
        routes.MapPageRoute("NewsLetterRoute", "Get-Alerts", "~/NewsLetters.aspx", True)
End Sub

問題を検索しているときに得たものに従ってみました: web.configの変更:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

また:

<system.webServer>    
    <modules runAllManagedModulesForAllRequests="true">    
      <remove name="UrlRoutingModule"/>    
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />    
    </modules>    
    <handlers>    
      <add
         name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web,     
          Version=2.0.0.0, Culture=neutral,    
          PublicKeyToken=b03f5f7f11d50a3a"/>    
    </handlers>
</system.webServer>

IISをHTTPリダイレクトで更新しました

しかし、私には何もうまくいきません。

私が見逃している他の部分はありますか?

編集: 404 ファイルが見つからないという次のエラーが表示されます。 ここに画像の説明を入力

4

2 に答える 2

0

1 時間以上すべてを試してみたところ、packages.config ファイルをライブ サーバーにコピーしていないことに気付きました。これを実行すると、すべてのルーティングが機能しました。すべての web.config および IIS の変更なし。その1つのファイルでうまくいきました。この問題を抱えている他の誰かのために参考までに:D

于 2015-11-20T19:16:54.707 に答える
0

マシン上にいなければ、このようなことを診断するのは困難です。非常に多くのことが考えられます...

Route Debuggerから始めます。これにより、リクエストが入ったときにどのルートがヒットしたかがわかります。

他に考えられるのは、.Net が正しくインストールされていないことです。サイトにリクエストを送信すると、IIS エラー ページが表示されます。.Net のインストール後に IIS をインストールすると、ASP_net_regiis が実行されず、ASP.Net が正しくセットアップされません。.Net フレームワークのバージョンが間違っています。「間違ったバージョンの.Net」とだけ言うと思うかもしれませんが、そうではありません。これはばかげているように聞こえるかもしれませんが、サイトにアクセスしていますか? ルートが混乱して、間違ったサイトでスラッシングしてしまうことがあります。理解するのに永遠にかかります。

于 2013-02-21T05:46:00.570 に答える