2

私は HostMySite.com でホストされている ASP.NET Web サイトを持っており、最近共有アカウントを中程度の信頼で実行するように変更しました。私の Web サイトでは、自分の Blogger アカウントにクエリを実行し、自分の Web サイトに表示するブログ投稿を取得しています。

Google.GData.Client v1.4.0.2 を使用しています

検索はローカルで機能します (ISP で中程度の信頼が呼び出されるまで機能していました)。今、私は次のエラーを受け取ります:

[SecurityException: Request for the permission of type 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
   System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
   System.Security.CodeAccessPermission.Demand() +58
   System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint) +147
   System.Net.HttpRequestCreator.Create(Uri Uri) +26
   System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) +216
   System.Net.WebRequest.Create(Uri requestUri) +31
   Google.GData.Client.GDataRequest.EnsureWebRequest() +77
   Google.GData.Client.GDataRequest.Execute() +42
   Google.GData.Client.Service.Query(Uri queryUri, DateTime ifModifiedSince, String etag, Int64& contentLength) +193
   Google.GData.Client.Service.Query(FeedQuery feedQuery) +202

Google のドキュメントとオンラインを検索しましたが、何を変更する必要があるかを見つけることができませんでした。

4

4 に答える 4

1

一部のホストは、デフォルトの信頼レベルを「中」(または中程度のカスタム信頼レベル) に設定しますが、次のように web.config でオーバーライドできます。

<system.web>
    <trust level="Full" originUrl="" />
</system.web>

それを上書きしようとしましたか?

于 2010-09-22T23:10:51.330 に答える
0

ブログの投稿を取得しているだけですか?RSS フィードはあなたに代わって仕事をすることができませんか? これは、私がクライアントのために行った GoDaddy サイトで機能します。

名前空間をインポートすることを忘れないでください (プロジェクトへの参照を追加する必要がある場合があります)。

using System.ServiceModel.Syndication;

protected void Page_Load(object sender, EventArgs e)
    {

        XmlReader xmlReader = System.Xml.XmlReader.Create("URL to blog feed");

        SyndicationFeed feed = SyndicationFeed.Load(xmlReader);
        lstLatestNews.DataSource = feed.Items.Take(5);
        lstLatestNews.DataBind();
    }

ASPX ページ:

<asp:ListView ID="lstLatestNews" runat="server">
        <LayoutTemplate>
            <ul id="latest_news">
                <li id="itemPlaceholder" runat="server"></li>
            </ul>
        </LayoutTemplate>
        <ItemTemplate>
            <li><a href="<%# Eval("Links[0].Uri.AbsoluteUri") %>"><%# Eval("Title.Text") %></a> <em><%# Convert.ToDateTime(Eval("PublishDate.DateTime")).ToString("g") %></em></li>
        </ItemTemplate>
    </asp:ListView>
于 2010-04-06T17:19:56.793 に答える
0

中程度の信頼では、Web アプリはリモート HTTP 接続を開くことができません。私が知っている回避策はありません。あなたの最善の策は、別のホスティング事業者に切り替えるか、GoDaddy がWebPermission 設定を緩和して、サーバー アプリが Google のようなリモート HTTP サーバーからデータを取得する必要があるシナリオを許可する場合に、ホスティング事業者と交渉することです。

ところで、私は GoDaddy が優れたホスティング事業者であると言っているわけではありませんが、そうではありませんが、あなたの質問に記載されている問題に対処するために、中程度の信頼設定を修正しました。そして、GoDaddy のようなローエンドのホスティング事業者がこれを行う意思がある場合、これを議論として使用して、他のホスティング事業者に同じことをするよう説得できる可能性があります。

于 2009-10-08T03:32:18.520 に答える
0

これを何に使用するかに応じて、RSS フィードをサイトに埋め込むことができる JavaScript API である Google AJAX Feed API を見ることができます。

サーバー側からこれにアクセスすることはできません。ユーザーのブラウザーにのみ表示されます。

このコンテンツを検索エンジンによってインデックス化しようとしている場合、それをデータベースに保存するか、何らかの方法で操作する必要がある場合、このソリューションは機能しません。

Google Feed API ドキュメントは次の場所にあります。

于 2010-11-30T15:00:37.397 に答える