3

我正在为自己构建一个小型 Twitter 网络应用程序。我正在使用 TweetSharp,但我不断收到错误消息:

Server Error in '/test' Application.

Security Exception

Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 

Exception Details: System.Security.SecurityException: You cannot use TweetSharp in partial trust without a policy that allows connecting to API endpoints.
The following policy information (or equivalent) must be added to your trust policy:
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1">
<ConnectAccess>
<URI uri="http://twitter\.com/.*"/>
<URI uri="http://api.twitter\.com/.*"/>
<URI uri="http://search.twitter\.com/.*"/>
</ConnectAccess>
</IPermission>


Source Error: 


[No relevant source lines]

Source File: App_Web_kiqglk9p.1.cs    Line: 0 

Stack Trace: 


[SecurityException: You cannot use TweetSharp in partial trust without a policy that allows connecting to API endpoints.
The following policy information (or equivalent) must be added to your trust policy:
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1">
<ConnectAccess>
<URI uri="http://twitter\.com/.*"/>
<URI uri="http://api.twitter\.com/.*"/>
<URI uri="http://search.twitter\.com/.*"/>
</ConnectAccess>
</IPermission>

我已经对该主题进行了一些研究,发现我所要做的就是添加我需要访问的 URI 到我正在使用的 .NET 信任级别。所以我切换到 MEDIUM 并改变了:

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web_mediumtrust.config

...像这样:

原来的:

   <IPermission class="WebPermission" version="1">
       <ConnectAccess>
             <URI uri="$OriginHost$"/>
       </ConnectAccess>
   </IPermission>

改变:

   <IPermission class="WebPermission" version="1">
        <ConnectAccess>
             <URI uri="$OriginHost$"/>
             <URI uri="http://twitter\.com/.*"/>
             <URI uri="http://api.twitter\.com/.*"/>
             <URI uri="http://search.twitter\.com/.*"/>
         </ConnectAccess>
    </IPermission>

但是,我仍然不断收到同样的错误。有任何想法吗?

PS:我不确定这是属于 ServerFault 还是这里,所以我从这里开始 :)

4

1 回答 1

1

很抱歉没有早点发现这一点。

您是否有理由不能使用完全信任?我不确定为什么会发生这种情况,但您可以提交错误。TweetSharp 尝试提前要求 WebPermission 以避免稍后在运行时遇到问题。

于 2010-02-14T09:19:47.873 回答