0

BlogEngine.NETは、私のWebホスト(DiscountASP.NET)のルートディレクトリに設定されています。サブディレクトリ(www.mydomain.com/wiki)に個人用ウィキを設定しようとしています。

wikiフォルダーはIISでWebアプリケーションとしてセットアップされます。www.mydomain.com/wikiは以下を示しています:

'/wiki'アプリケーションのサーバーエラー。

コンパイルエラー

説明:このリクエストを処理するために必要なリソースのコンパイル中にエラーが発生しました。以下の特定のエラーの詳細を確認し、ソースコードを適切に変更してください。

コンパイラエラーメッセージ:CS0246:タイプまたは名前空間名'BlogEngine'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

ソースエラー:

Line 103:      </controls>
Line 104:      <namespaces>
Line 105:        <add namespace="BlogEngine.Core" />
Line 106:      </namespaces>
Line 107:    </pages>

したがって、Webサーバーは、サブフォルダー内のアプリケーションに要求を送信する前に、ルートアプリケーションのweb.configを調べます。なぜ今ビンが見つからないのか(www.mydomain.comにアクセスすると正常に機能します)、よくわかりません。

ルートフォルダにインストールされているアプリケーションから独立するようにサブフォルダアプリケーションを設定するにはどうすればよいですか?

4

3 に答える 3

0

ブログエンジンはあなたのサイトにあります:http://blog.discountasp.net/ サブドメインはルートではありません:)

少なくとも、ドメインDNSレコードはそのように設定されています。

BEを他の人とうまくプレイさせるための魔法である別のapp_poolが必要です:)

したがって、3つのapp_poolsが必要です

  1. BEエンジンの場合
  2. メインサイトの場合www.discountasp.net
  3. あなたのウィキのために

これを行うことで、それらは互いに混乱することはなく、3つの完全に異なるアプリとして扱われます。

メインの「ルート」web.configで、サブフォルダーでweb.configを許可するように設定されていることを確認します。

ただし、独自のapp_poolsがある場合に、これが必要かどうかはわかりません。

于 2011-08-14T23:21:28.073 に答える
0

これを読んだ後の結論:まず、すべてのIISを制御できる場合は、アプリプールと仮想ディレクトリを介してサブディレクトリにアプリを簡単にセットアップできるはずです。

仮想ディレクトリを使用せずに、物理ファイルシステムのサブディレクトリに配置する場合の問題は、サブディレクトリのweb.configがルートディレクトリのweb.configから継承されることです。

場合によっては、サブディレクトリのweb.configのタグとタグを使用して継承されたものを削除することでこれを解決できます。それは私の好みには少し難解すぎました。

これを回避する1つの方法は、すべてのアプリを別々のサブディレクトリ(/ blog / wikiなど)に配置してから、ルートディレクトリにある目的のアプリでURL書き換えを使用することです。私の場合、次のルールを使用しました。

^(?!(wiki|blog)).+

^&

/ blogを指す(元のクエリ文字列を追加する)。

于 2011-08-15T07:28:45.813 に答える
0

私がしたことは、BlogEngen.Netのweb.configファイルの最後にロケーションタグを追加して、サブフォルダーの設定を削除したことです。

<location path="wiki" allowOverride="true">
<connectionStrings>
    <remove name="BlogEngine"/>
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
    <compilation debug="false" targetFramework="4.0">
        <assemblies>
            <remove assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <remove assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <remove assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <remove assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <remove assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <remove assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <remove assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <remove assembly="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <remove assembly="System.Web.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <remove assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <remove assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <remove assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </assemblies>
        <expressionBuilders>
            <remove expressionPrefix="LinqLength"/>
            <remove expressionPrefix="Reflect"/>
            <remove expressionPrefix="Session"/>
            <remove expressionPrefix="Server"/>
            <remove expressionPrefix="QueryString"/>
            <remove expressionPrefix="Code"/>
        </expressionBuilders>
    </compilation>
    <membership defaultProvider="AspNetSqlMembershipProvider">
        <providers>
            <clear/>
            <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
        </providers>
    </membership>
    <roleManager defaultProvider="AspNetSqlRoleProvider">
        <providers>
            <clear/>
            <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </providers>
    </roleManager>
    <siteMap defaultProvider="AspNetXmlSiteMapProvider">
        <providers>
            <add siteMapFile="web.sitemap" name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </providers>
    </siteMap>
    <httpModules>
        <remove name="WwwSubDomainModule"/>
        <remove name="UrlRewrite"/>
        <remove name="CompressionModule"/>
        <remove name="ReferrerModule"/>
        <remove name="SecurityModule"/>
        <remove name="RightModule"/>
    </httpModules>
    <httpHandlers>
        <remove verb="*" path="file.axd"/>
        <remove verb="*" path="image.axd"/>
        <remove verb="*" path="syndication.axd"/>
        <remove verb="*" path="sitemap.axd"/>
        <remove verb="*" path="trackback.axd"/>
        <remove verb="*" path="pingback.axd"/>
        <remove verb="*" path="opensearch.axd"/>
        <remove verb="*" path="metaweblog.axd"/>
        <remove verb="*" path="rsd.axd"/>
        <remove verb="*" path="css.axd"/>
        <remove verb="*" path="js.axd"/>
        <remove verb="*" path="res.axd"/>
        <remove verb="*" path="rating.axd"/>
        <remove verb="*" path="opml.axd"/>
        <remove verb="*" path="blogml.axd"/>
        <remove verb="*" path="sioc.axd"/>
        <remove verb="*" path="apml.axd"/>
        <remove verb="*" path="foaf*.axd"/>
        <remove verb="*" path="*.htm"/>
    </httpHandlers>
</system.web>
<system.webServer>
    <modules>
        <remove name="WwwSubDomainModule"/>
        <remove name="UrlRewrite"/>
        <remove name="CompressionModule"/>
        <remove name="ReferrerModule"/>
        <remove name="SecurityModule"/>
        <remove name="RightModule"/>
    </modules>
    <handlers>
        <remove name="FileHandler"/>
        <remove name="ImageHandler"/>
        <remove name="Syndication"/>
        <remove name="Sitemap"/>
        <remove name="Trackback"/>
        <remove name="Pingback"/>
        <remove name="OpenSearch"/>
        <remove name="MetaWeblog"/>
        <remove name="RSD"/>
        <remove name="CssHandler"/>
        <remove name="Javascript"/>
        <remove name="Resource"/>
        <remove name="Rating"/>
        <remove name="Opml"/>
        <remove name="BlogML"/>
        <remove name="SIOC"/>
        <remove name="Apml"/>
        <remove name="Foaf"/>
        <remove name="Html"/>
    </handlers>
</system.webServer>

これを使用し、さらにサブフォルダーがある場合は、それぞれに追加する必要があります。

于 2011-09-06T09:46:05.073 に答える