1

BasicTestProjectという.Net4.0プロジェクトがあり、 DefaultというWebフォームが含まれています。

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" 
         CodeBehind="Default.aspx.cs" Inherits="BasicTestProject.Default" %>

Default.aspx.cs:

namespace BasicTestProject 
{
    public partial class Default : System.Web.UI.Page 
    {
       ...
    }
}

このアプリケーションのコンパイル済みバージョンをWebサイトのサブフォルダーに配置したいと思います。

  • ウェブサイトのルート
    • サブフォルダ
      • BasicTestProject

Webサイトのルートには、基本的なweb.configがあります。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <compilation targetFramework="4.0" />
    </system.web>
</configuration>

上記の例のテストを行い、サブフォルダー( http://WebsiteRoot/SubFolder/BasicTestProject/Default.aspx )内のサイトにアクセスしようとすると、次のエラーが発生します。

Parser Error 

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

Parser Error Message: Could not load type 'BasicTestProject.Default'.

Source Error: 

Line 1:  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="BasicTestProject.Default" %>
Line 2:  
Line 3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Source File: /*WebsiteRoot*/*SubFolder*/BasicTestProject/default.aspx    Line: 1 

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 

また、コンパイルしたBasicTestProjectを独自のIPアドレスに配置して、ルートフォルダーに配置しようとしたことにも言及しておく必要があります。これは期待どおりに機能し、Default.aspxにアクセスできます。

更新(回答):

IIS7では、BasicTestProjectを右クリックして、アプリケーションに変換しました。

  • ウェブサイトのルート
    • サブフォルダ
      • BasicTestProject

また、BasicTestProjectフォルダーへのアプリケーションプールユーザー権限を付与する必要がありました。これで、自己完結型で実行されます。

4

2 に答える 2

2

そのサブフォルダーをIISのアプリケーションとして構成しましたか?

于 2012-07-16T23:54:34.680 に答える
1

@MikeCの回答について少し詳しく説明します。IISには、同じ概念の「アプリケーション」に属するファイルシステムツリーのサブ階層である「アプリケーションスコープ」の概念があります。

個々のIISWebサイトのルートも、新しいアプリケーションスコープのルートとしてマークされます。スコープで実行されるサーバー側のコードは、スコープが属するアプリケーションプールで実行されます(たとえば、CGIおよびFastCGIプロセスは、スコープのプールのIDで起動されます)。binASP.NETは、アプリケーションスコープのルートをディレクトリの検索を期待する場所に定義し、さらに多くweb.configのオプションを定義できるようにすることで、これをさらに進めます。

すでに述べたように、これはファイルシステム階層に適用されるため、URL書き換えまたはASP.NET URLルーティングを使用している場合は、事態が複雑になります。

(これは元々、マイクの回答に対するコメントの返信でしたが、メッセージの長さを超えていました)。

于 2012-07-17T00:07:05.563 に答える