12

このMSDN の記事には次のように書かれています。

HttpContext: Current is always null when accessed from within a WCF service. Use RequestContext instead.

私がやろうとしているのは、IIS でホストされている WCF サービスからいくつかの XSD ファイルをロードすることです。問題は、次のような古いバニラ ASP.NET Web サイトのように Server.MapPath() を実行する方法がわからないことです。

HttpContext.Current.Server.MapPath(schemaUri);

IIS がホストする WCF サービスで RequestContext を使用する同等の方法は何でしょうか?

スキーマは、サービス アプリケーションのルートにある "Schemas" ディレクトリにあります。これらは、次のように web.config のカスタム構成セクションを使用して参照されます。

<schemas>
    <add uri="~/Schemas/foo.xsd" xmlNamespace="http://foo.bar/types" />
</schemas>

そして、私はこのようにロードしようとしていました:

var schemaUri = HttpContext.Current.Server.MapPath(schema.Uri);

これは、IIS がホストする WCF サービスではなく、通常の ASP.NET Web サイト内から正常に機能します。

4

1 に答える 1

37

HostingEnvironment.MapPathを使用できます。

于 2012-04-30T14:01:18.577 に答える