2

他の人が私と同じ振る舞いをするかどうかを知りたいだけです。

GridView を拡張する GridViewEx というクラスがあります。そのクラスのプロパティの 1 つに、注釈として Browsable(true) があります。これにより、(少なくとも IIS 7.5 より前では) マークアップでプロパティを設定できます。ただし、Windows 7 IIS 7.5 では、パーサー エラーが発生します。IIS 7.5 を搭載した Windows 2008 サーバーでは、アプリは正常に動作したことに注意してください。

したがって、Win7のIIS 7.5設定が台無しになっているのではないかと思っています。

再現する手順

a) 新しい ASP.Net アプリケーションを作成し、フレームワーク バージョンに 4.0 を使用します

b) GridViewEx という名前の新しいクラスを作成します (get/set は単なるダミー コードであり、重要ではありません)。

namespace GUI.Controls
    {
        public class GridViewEx : GridView
        {
            [Browsable(true)]
            [Description("my test")]
            public int VirtualItemCount
            {
                get
                {
                    return 42;
                }
                set
                {
                    int x = value;
                    int y = x + x;
                }
            }

        }
    }

c) Default.aspx で、タグ プレフィックスを登録します (WebApplication1 をプロジェクトの名前に変更します)。この行は、Page ディレクティブのすぐ下にある必要があります。

<%@ Register TagPrefix="common" Namespace="GUI.Controls" Assembly="WebApplication1" %>

d) Default.aspx で、これをコンテンツに追加します。

<common:GridViewEx runat="server" ID="gv" VirtualItemCount="-1">

</common:GridViewEx>

このアプリを IIS 7.0 以前で実行すると、エラーは発生しません。ただし、Win 7 IIS 7.5 では、次のエラーが発生します。

Parser Error 
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

Parser Error Message: The 'VirtualItemCount' property cannot be set declaratively.

Win 7 IIS 7.5 でエラーが発生する理由がわかりませんが、以前の IIS バージョンでは発生せず、Win 2008 サーバー上の IIS 7.5 では発生しません。何か案は?

4

1 に答える 1

2

わかりました、これを機能させるためのハックを見つけました。これらの属性を に追加VirtualItemCount:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[EditorBrowsable(EditorBrowsableState.Always)]
[Bindable(true)]

これで、パーサー エラーが発生しなくなりました。Win 7 マシンで機能させるためにこれらを追加しなければならなかった理由がわかりませんが、これらの追加の属性でテストしたサーバーでは必要ありません (Win 7 マシンとサーバーの両方が IIS 7.5 上にあります)。 . 謎のままになりそうです。

この質問に答えてくれた人に感謝します。それは私を正しい方向に導いてくれました。

于 2013-02-18T14:45:39.670 に答える