0

如果标题看起来含糊不清,我很抱歉,但我/实际上/不知道该怎么说。
欢迎任何可以改变它的人。

我正在使用Repeater控件从数据库中读取消息,并将它们显示在Label.

通过VS2010,我能够愉快地看到和显示消息。但是,当我发布该网站时,它会出现以下警告:

Attempt by method 'System.Web.UI.DataBinder.GetIndexedPropertyValue(System.Object, System.String)' to access method 'System.Data.Common.DataRecordInternal.get_Item(System.String)' failed.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.MethodAccessException: Attempt by method 'System.Web.UI.DataBinder.GetIndexedPropertyValue(System.Object, System.String)' to access method 'System.Data.Common.DataRecordInternal.get_Item(System.String)' failed.

Source Error: 


Line 106:                <asp:Panel ID="pnlModuleHolder" class="module blue" runat="server">
Line 107:                    <h2>
Line 108:                        <asp:Label ID="lblTitle" runat="server" Text='<%# Eval("[newsColumnTitle]")%>' Font-Bold="True"></asp:Label>
Line 109:                        <a href='<%# "NewsReport?report=" +Eval("[id]") %>'>Read More</a></h2>
Line 110:                </asp:Panel>

Source File: f:\Domains\SEE47\ocdbt.whatyouneed.com\wwwroot\Default.aspx    Line: 108 

我以前从未见过这种情况,而且因为它在我的本地站点上运行,所以我无法真正通过调试来寻找答案。

有没有人有过这方面的经验?

这是存储在数据库中的消息片段。

<p style="font-family: Arial; line-height: 18px;"><strong>Welcome to the Beta build and release of the O
4

1 回答 1

0

根据这个博客

在中等信任环境中,根据微软的“不允许反射”。看起来当您在内部将数据读取器分配给中继器控件时,它正在做一些导致此问题的反射。此错误的另一个奇怪行为是它甚至不会告诉您确切的错误...

他说要在本地复制以下内容web.config

<system.web>
    <trust level="Medium" />
</system.web>

他最后的解决方法是使用DataSet而不是DataReader.

于 2013-04-23T16:54:32.313 回答