0

何よりもまず、これは ASP.NET Web サイトプロジェクトです。それを変えることはできませんし、そのせいで心が痛みますが、対処しなければなりません。

今、私はtagPrefix私のように定義されていweb.configます:

<add tagPrefix="vbp" namespace="MyNamespace" />

これにより、このクラスを参照できます。

namespace MyNamespace
{
    public class RegularExpressionValidatorItem
    {

このようなマークアップで:

<vbp:DataRowTextBox ID="EMail" runat="server" Label="E-mail" MaxLength="50"
    IsRequired="true" RequiredErrorMessage="Please enter your email address.">
    <Regexes>
        <vbp:RegularExpressionValidatorItem Type="Email" />
    </Regexes>
</vbp:DataRowTextBox>

これは開発ではうまく機能しますが、 INTG環境にデプロイすると、次のエラーで失敗します。

Exception Source: System.Web
Exception Type: System.Web.HttpException
Exception Message: Unknown server tag 'vbp:RegularExpressionValidatorItem'.
Stack Trace:
   at System.Web.UI.TagPrefixTagNameToTypeMapper.System.Web.UI.ITagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs)
   at System.Web.UI.MainTagNameToTypeMapper.GetControlType2(String tagName, IDictionary attribs, Boolean fAllowHtmlTags)
   at System.Web.UI.MainTagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs, Boolean fAllowHtmlTags)
   at System.Web.UI.RootBuilder.GetChildControlType(String tagName, IDictionary attribs)
   at System.Web.UI.CollectionBuilder.GetChildControlType(String tagName, IDictionary attribs)
   at System.Web.UI.ControlBuilder.CreateChildBuilder(String filter, String tagName, IDictionary attribs, TemplateParser parser, ControlBuilder parentBuilder, String id, Int32 line, VirtualPath virtualPath, Type& childType, Boolean defaultProperty)
   at System.Web.UI.TemplateParser.ProcessBeginTag(Match match, String inputText)
   at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding)

残念ながら、それだけです。IIS に展開すると、これが異なる動作をするのはなぜですか?

4

1 に答える 1

3

認めますが、その答えは私を驚かせました。開発中、アセンブリがないため、アセンブリをに含めることはできませWeb.configん。推測です。ただし、展開するときは、アセンブリを次の行に含める必要があります。

<add tagPrefix="vbp" namespace="MyNamespace" assembly="MyAssembly" />

苦労したのは、アセンブリの名前を知るために、公開されたフォルダーにアクセスする必要があったことです。アセンブリの名前を知っているので、今はクールです。

とにかく、それが答えです。次回まで友達...ハッピーコーディング!

于 2013-06-20T18:17:14.860 に答える