私はビュー処理を追加したいWeb API 2.0アプリケーションがあります。_viewStart.cshtmlは、Web API 2.0アプリケーションでSystem.Web.WebPages.StartPageを継承しません。
私はpostal.mvc5を使用しており、アプリケーション内から電子メールを送信したいと考えています。
私は定期的なコントローラのルーティングを解決し、解決する最終的なエラーになっています。
Postal.Mvc5で実装されて_ViewStart.cshtmlページがされています。私は取得していますエラーがある
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Optimization"/>
<add namespace="Postal" />
</namespaces>
</pages>
</system.web.webPages.razor>
</configuration>
:ビューフォルダ内の
@{
Layout = null;
}
私のweb.configページ
タイプ 'ASP._Page_Views_Emails__ViewStart_cshtml'は、 'System.Web.WebPages.StartPage'から継承しません。
完全な誤りがある:
出典:System.Webの----ターゲットサイト:CheckAssignableTypeタイムスタンプ:2017年10月23日午前3時05分48秒PMメッセージ:タイプ「ASP._Page_Views_Emails__ViewStart_cshtml 'は' System.Web.WebPages.StartPage 'から継承しません。 ---- StackTrace:System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath仮想パス、タイプrequiredBaseType、HttpContextコンテキスト、ブールallowCrossApp)のSystem.Web.UI.Util.CheckAssignableType(タイプbaseType、タイプタイプ) System.Web.WebPages.BuildManagerWrapper.CreateInstanceOfType [T](String virtualPath)System.Web.WebPages.VirtualPathFactoryExtensions.CreateInstance [T](IVirtualPathFactoryファクトリ、String virtualPath)での.Compilation.BuildManager.CreateInstanceFromVirtualPath(String virtualPath、Type requiredBaseType) System.Web.WebPages.StartPage.GetStartPage(WebPageRenderingBaseページ)のSystem.Web.WebPages.VirtualPathFactoryManager.VirtualPathFactoryManager.CreateInstanceOfType [T](String virtualPath)System.Web.WebPages.VirtualPathFactoryExtensions.CreateInstance [T](IVirtualPathFactoryファクトリ、String仮想パス) 、IVirtualPathFactory仮想パスファクトリ、String appDomainAppVirtualPath、String fileName、IEnumerable
1 supportedExtensions) at System.Web.WebPages.StartPage.GetStartPage(WebPageRenderingBase page, String fileName, IEnumerable
1 supportedExtension System.Web.Mvc.RazorView.RenderView(ViewContext viewContext、TextWriterライター、オブジェクトインスタンス)System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext、TextWriter writer)Postal.EmailViewRenderer.RenderView(IViewビュー、ViewDataDictionary Postal.Email.Send()のPostal.EmailService.Send(電子メール電子メール)でPostal.EmailService.CreateMailMessage(電子メール電子メール)のPostal.EmailViewRenderer.Render(電子メール電子メール、文字列viewName)でのviewData、ControllerContext controllerContext、ImageEmbedder imageEmbedder)
私はこれがかなり独創的であることを知っていますが、この最後のエラーを回避するにはどうすればよいですか?さらにデバッグの
更新:
私は、Webサービスにエンタープライズ・ロギングを使用して、私のエラーメールが次に呼び出されるまで送信されていなかったので、それは次の呼び出しまでのエラーメールを送信していなかったことに気づきましたWebサービスに送信します。私は、smtpの設定でメインのweb.configファイルにsystem.netセクションを追加しましたが、実際には悪化しました。 Webサービスの実行中に電子メールが送信されていませんでした。
ウェブAPIのglobal.asaxファイルで通常のWebアプリケーションインスタンスをインスタンス化しようとしましたが、これは実際の効果がないようです。
以下の回答ごとにweb.configファイルにルーティングを追加しましたが、これも無効です。 wep api 2アプリケーションには、通常のWebアプリケーションと同じ参照およびその他の設定項目がありますが、まだ問題があります。
1つの解決策は、web api 2を追加した通常のWebサイトとしてWeb api 2を再作成することです。そこにはたくさんのオンラインリファレンスがあり、web api 2アプリケーションが分割された元のアプリケーションはapi機能を備えた通常のWebサイトでした。
私が扱っているこの二重性の問題はおそらく.Net Coreで解決されていますが、現在のシステムでは使用できません。
次の質問は、web api 2の実行中にsendmailが無効になっている理由です。
web api 2では、Web API呼び出し中にsendmailが無効になるのはどうですか?