何よりもまず、これは 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 に展開すると、これが異なる動作をするのはなぜですか?