3

obout コントロール ライブラリのファイル アップロード コントロールを使用しようとしていますが、とても気に入っています。

インストーラー全体をダウンロードし、サンプルの設定で遊んで、コントロールを思いどおりに動作させました。

私はvs2008で新しいWebアプリケーションを作成し、web.config、dll、およびスタイルコードを含むフォルダーと、目的の出力を得るために微調整したaspxページを含めました。

新しいプロジェクトをビルドして実行すると、コントロールが読み込まれ、正常に動作します。


今、私はこれを私が取り組んでいる既存のプロジェクトで使用したいので、web.config 値、dll、およびフォルダーを、スタイル コードと微調整した aspx ページと共にコピーしました。

私はそれらを他のプロジェクトで行ったのと同じ場所に置き、それをビルドしてページを実行しました..すべてが読み込まれましたが、ボタンをクリックするとwebresource.axdエラーが発生しました.2、実際には両方とも最後に暗号化されています.

いくつかの調査を行った後、webresource.axd を使用して javasript や css ファイルなどを動的にロードできるように見えます...この時点での私の推測では、コントロールは必要な JavaScript ファイルを含めるための隠し方法としてこれを使用しています..そしてそれらのインクルードでの失敗..それは私を困惑させます。

私は自分のプロジェクトからすべてを取り除きましたが、まだ失敗しています。サイトのiis構成である可能性があると述べた記事を見つけたので、チェックしました.axdを使用して.net 2.0 libファイルへのマッピングがあります拡張機能..それが問題だったとは思えませんが、iisサイトを削除して再作成しました..それでも機能しません...

この行もWeb構成に含めました..

<add verb="GET" path="WebResource.axd" type="System.Web.Handlers.AssemblyResourceLoader" validate="true"/>

これも役に立たなかったようです..

誰か私がこれでどこに行けるか知っていますか? ...

編集:イベントビューアーでこれに出くわしました..

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 05/05/2009 2:38:16 PM 
Event time (UTC): 05/05/2009 6:38:16 PM 
Event ID: 8579dbce2f5844169b1740bb95ebffb1 
Event sequence: 8 
Event occurrence: 1 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/1/Root/SVN_WORKSPACE/WWWROOT/WorkEstimateSystem-12-128860222914549340 
    Trust level: Full 
    Application Virtual Path: /SVN_WORKSPACE/WWWROOT/WorkEstimateSystem 
    Application Path: c:\inetpub\wwwroot\SVN_WORKSPACE\WWWROOT\WorkEstimateSystem\ 
    Machine name: GREGE6500 

Process information: 
    Process ID: 2276 
    Process name: aspnet_wp.exe 
    Account name: GREGE6500\ASPNET 

Exception information: 
    Exception type: HttpException 
    Exception message: Session state is not available in this context. 

Request information: 
    Request URL: http://localhost/SVN_WORKSPACE/WWWROOT/WorkEstimateSystem/WebResource.axd?d=gPWI1Nyst2kh_ORsvV-AHCh4GSmizSjDuHRCpBgAKBsmi1Zr6e44K950Zcfsdc4p2GuNTPmRl4yAADV0USSNLFQQ7sk-iY1WVt4JJWJE_yg1&t=633771228432707325 
    Request path: /SVN_WORKSPACE/WWWROOT/WorkEstimateSystem/WebResource.axd 
    User host address: 127.0.0.1 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: GREGE6500\ASPNET 

Thread information: 
    Thread ID: 8 
    Thread account name: GREGE6500\ASPNET 
    Is impersonating: False 
    Stack trace:    at System.Web.HttpApplication.get_Session()
   at GlobalClass.CURRENT_EMPLOYEE_ID()
   at GlobalClass.checkLogin(String pagerequested)
   at GlobalClass.Application_OnPostRequestHandlerExecute(Object sender, EventArgs e)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


Custom event details: 

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

global.asax には、セッションの開始関数と終了関数、およびアプリケーションの開始関数と終了関数があります。要求が axd から来ているかどうかを簡単に言う方法はありますか?またはこれらのカスタム関数を実行しないでください。

修繕:

global.asax ページ内..

    Sub Application_OnPostRequestHandlerExecute(ByVal sender As Object, ByVal e As EventArgs)
select case requestedPageName
   case "webResource.axd"
    exit sub

これで直りました!

4

3 に答える 3

5

「Application_OnPostRequestHandlerExecute」メソッドは、.Net が処理するすべての要求に対して実行されます。これには「webresource.axd」が含まれます。そのメソッドで、現在の URL が「webresource.axd」であるかどうかを確認します。そうである場合は、セッションを使用しないでください。

于 2009-05-05T19:23:17.257 に答える
0

行数が多い 1 ページのみを表示する Farpoint Spread を使用しています。これは私が最初に試したもののC#バージョンです(動作しませんでした):

Global.asax:
    protected void Application_OnPostRequestHandlerExecute(object sender, EventArgs e  )
    {
        String requestedPageName = VirtualPathUtility.GetFileName(Request.FilePath);
        switch (requestedPageName)
        {
            case "WebResource.axd":
                return;
        }
    }

このリンクの解決策は私にとってはうまくいきましたが、数値を上げる必要がありました: http://www.acumen-corp.com/Blog/tabid/298/EntryId/8/ASP-NET-Error-ThrowIfMaxHttpCollectionKeysExceeded.aspx

Web.Config:
   <appSettings>
        <add key="aspnet:MaxHttpCollectionKeys" value="5000" />
   </appSettings>

この関連記事は同じ解決策を使用しています: ポストバック中の「オブジェクトの現在の状態のため、操作は有効ではありません」というエラー

于 2012-07-02T18:12:19.997 に答える