11

Web サイトにロードするスクリプト ファイルを取得できません。他のすべては正常に動作します。ただし、ScriptResource.axd は試していません。

この問題が Cassini と IIS7 の両方に存在することを確認しました。

64 ビット 4.0 の web.config に WebResource.axd のマッピングが含まれていることを確認しました。

私のシステム時間は正確です (問題があるかもしれないと聞きました)。

他のプロジェクトで動作することを確認したので、原因は私の Web アプリケーションにあるはずです。

私の Web アプリケーションは 4.0 MVC3 Web アプリケーションです。

私の web.config はここにあります。

このエラーは私を殺している! どんな助けでも大歓迎です!

リソースが見つかりません

4

9 に答える 9

5

あなたの web.config ファイルは素晴らしいです (褒め言葉ではありません): .NET Framework 4.0 では、はるかに短く軽量になるはずです。
あなたのハンドラーは間違ったセクションで宣言されていると思います:

<system.webServer>
    <handlers>
        <add name="WebResource" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" />
    </handlers>
</system.webServer>

通常、WebResource.axd ハンドラーは「system.web」セクションで宣言されます。

<system.web>
    <httpHandlers>
        <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
    </httpHandlers>
</system.web>
于 2011-12-18T07:19:26.737 に答える
5

埋め込みリソースを含むアセンブリが配置されているフォルダーに Everyone の読み取りアクセス許可を追加することで、同様の問題を解決しました。明らかに誰もがやり過ぎですが、それは他の人が同様の問題を研究するのに役立つかもしれません.

私たちの場合、いくつかのリソースがロードされ(AssemblyResourceLoaderが機能していたことがわかります)、あるマシンでは機能しましたが、別のマシンでは機能しませんでした。

別の質問に対するこの回答は、どのアセンブリが機能していないかを判断するのに役立ちました。

于 2012-05-31T14:38:54.697 に答える
4

少し遅れますが、将来誰かを助けるかもしれません...

これは、配信している Web アプリケーションの DLL が現在の日時よりも新しい場合に発生する可能性があることがわかりました。たとえば、開発用マシンよりもサーバー時間が古い実稼働サーバーに Web アプリケーションを配置したとします。

サーバー時間を開発マシンと同期させると、うまくいきました...

于 2013-07-19T04:59:04.737 に答える
4

aspnet_regiisを再度実行している実稼働マシンでこの問題を解決しました。

%WINDIR%\Microsoft .NET\Framework\4.xxxx\aspnet_regiis -i

フレームワーク 4 の標準インストールが失敗した可能性があります。

于 2012-08-23T09:54:59.167 に答える
4

絶対的な解決策は次のとおりです: http://www.4guysfromrolla.com/articles/080906-1.aspx .net フレームワークコードを確認する場合: https://github.com/Microsoft/referencesource/blob/master/System.Web/ Handlers/AssemblyResourceLoader.cs のトリックを見ることができます: 行 606

WebResourceAttribute wra = FindWebResourceAttribute(assembly, resourceName);

アセンブリに WebResourceAttribute がない場合、404 エラーがスローされます。この行で見ることができます

if (resourceStream == null) {
            if (resourceIdentifierPresent) {
                LogWebResourceFailure(decryptedData, exception);
            }
            throw new HttpException(404, SR.GetString(SR.AssemblyResourceLoader_InvalidRequest));
        }

したがって、次のように WebResourceAttribute を AssemblyInfo.cs ファイルに追加します。

[assembly: WebResource("FullNameSpace.SampleResourceFile.js", "text/javascript")]
于 2016-04-21T07:10:28.373 に答える
1

Umbraco の実稼働サーバーでこの .axd の問題が発生しました。サーバーのセキュリティが異なり、リクエスト フィルタリングの下で​​拡張子 .axd と .asmx がデフォルトで許可されたファイル名にリストされていないことが判明するまで、気が狂いそうになりました。ホスティング会社では、 [一覧にないファイル名の拡張子を許可する] の設定がオフになっており、これは私の開発マシンとは異なります。

于 2015-04-16T10:10:40.360 に答える