1

Asp.Net MVC 4 (VS2010 SP1、Windows 7) を使用して Web ページを作成しました。また、検索を行ったり、何か (データやファイル) をアップロードしたりできる API もあります。VS2010 SP1 の開発サーバーにページをデプロイすると、すべて正常に動作しますが、IIS (IIS7) を選択すると、API が動作しなくなります。「IsSuccessStatusCode」は偽のようです。ただし、ページ自体は機能しており、他のマシンからアクセスできます。

これは、組み込みの開発サーバーに使用するアドレスです: "http://localhost:56272/api/" そして、これは IIS に使用します: "http://127.0.0.1/api/"

IIS 用の仮想ディレクトリを作成しました (VS2010 で作成)。追加で何かを構成する必要がありますか、それとも IIS にのみ存在するルーティングの問題でしょうか?

これは私のクライアント側 - クラス MyService - GET 用です:

 public MyService(string serviceAdress) //"http://127.0.0.1/api/"
        {
            this.serviceAdress = new Uri(serviceAdress); //of type Uri
            client = new HttpClient();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
        }
    public Task<IEnumerable<Item>> SearchByTag(string tag)
    {
        client.BaseAddress = serviceAdress;
        var getStuffCall=client.GetAsync("Search/ByTag/" + tag);
        var r=getStuffCall.ContinueWith(
            t =>t.Result.IsSuccessStatusCode? (t.Result.Content.ReadAsAsync<IEnumerable<Item>>().Result):new List<Item>()
            );
        return r;
    }

私のサーバー側は次のようになります。

public class SearchController : ApiController
    {
        [HttpGet]
        public IEnumerable<Shared.Item> ByTag(string search)
        {....}
    }

これは WebApiConfig でのルーティングです。

config.Routes.MapHttpRoute(
            name: "SearchApi",
            routeTemplate: "api/Search/{action}/{search}",
            defaults: new
                          {
                              controller="Search"                                  
                          }
        );
4

2 に答える 2

0

IIS のアドレスが間違っていました。「http://127.0.0.1/api/」ではなく、「http://127.0.0.1/MyVirtualFolderSomething/api/」にする必要がありました。

于 2012-10-19T11:19:03.373 に答える
0

Web サイトとアプリケーション プールのユーザーが、アップロード先のディレクトリへの書き込みアクセス許可を持っていることを確認する必要があります。開発サーバーでは、通常の権限を持つローカル (またはドメイン) アカウントで実行されるため、機能しません。IIS7 は制限されたユーザー アカウントで実行されているため、その権限を調整するか、アップロード先のフォルダーに書き込み権限を持つこのユーザーを含める必要があります。

権限を調整する具体的な手順については、http ://support.microsoft.com/kb/979124 を参照してください。

于 2012-10-15T11:16:07.213 に答える