[编辑]问题是BitDefender反病毒.我按照如何安装asp.net 5 beta 8的说明.我能够安装所有必要的文件没有任何问题.但是,每次我选择Web模板并尝试使用IIS Express运行它时,它会在显示错误之前加载几分钟:HTTP错误502.3 - 错误网关...我尝试了本指南中的所有故障排除步骤但未成功.我检查了我的事件日志并注意到以下两个条目:
为缓存压缩内容C:\ Users ... Files\Clr4IntegratedAppPool指定的目录无效.静态压缩正在被禁用.
并且:
无法找到源HttpPlatformHandler的事件ID 1001的描述.引发此事件的组件未安装在本地计算机上,或者安装已损坏.您可以在本地计算机上安装或修复该组件.
如果事件源自另一台计算机,则必须随事件一起保存显示信息.
活动中包含以下信息:
进程'4528'成功启动并正在侦听端口'x'.
我不完全确定这些警告/信息是否与我的问题有关.如果有人能够对此有所了解那将是好事.我所知道的是我已经安装了HttpPlatformHandler.
我决定尝试另一个视觉工作室模板(空白模板),奇怪的是它有效.然后我创建了一个新的Web应用程序并使用项目属性,并注意到当我勾选复选框时:"使用特定运行时"并选择一个x64架构一切正常!:)但是当没有勾选复选框(默认)或选中复选框并且架构设置为x86时,我得到相同的旧错误.
如何使用默认设置运行它?或者我在这里遗失了什么?
这是我的project.json文件
{
"webroot": "wwwroot",
"userSecretsId": "aspnet5-WebApplication3-1a336a00-1f3e-432d-928e-f2669c4b0d94",
"version": "1.0.0-*",
"dependencies": {
"EntityFramework.Commands": "7.0.0-beta8",
"EntityFramework.SqlServer": "7.0.0-beta8",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta8",
"Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta8",
"Microsoft.AspNet.Authentication.Google": "1.0.0-beta8",
"Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta8",
"Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta8",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta8",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta8",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
"Microsoft.AspNet.Mvc": "6.0.0-beta8",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta8",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
"Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta8",
"Microsoft.Framework.Logging": "1.0.0-beta8",
"Microsoft.Framework.Logging.Console": "1.0.0-beta8",
"Microsoft.Framework.Logging.Debug" : "1.0.0-beta8",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta8"
}, …Run Code Online (Sandbox Code Playgroud) 我想有一个错误页面,根据提供的查询字符串显示一个稍微不同的错误消息给用户.
在创建新的asp.net 5项目时,我注意到Startup.cs文件中的以下代码.
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
Run Code Online (Sandbox Code Playgroud)
发生异常时,我能够显示正确的错误页面.我的问题是,它似乎只能捕获我的应用程序中尚未处理的错误,即状态代码始终为500.它是否正确?
要处理404错误,我使用以下代码:
app.UseStatusCodePagesWithReExecute("/Error/{0}");
Run Code Online (Sandbox Code Playgroud)
我的控制器实现为:
[HttpGet("{statusCode}")]
public IActionResult Error(int statusCode)
{
return View(statusCode);
}
Run Code Online (Sandbox Code Playgroud)
这似乎捕获404错误并显示正确的状态代码.
如果我在上面的if语句中更新我的代码以使用相同的操作,例如:
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error/{0}");
}
Run Code Online (Sandbox Code Playgroud)
返回的状态代码始终为0.
此外,当会发生什么400,403或其他任何发生?他们会被抓住吗?如果是这样,他们会在什么时候被抓住?
你可以告诉我,我很困惑,并希望有人为我提供一个处理所有不同状态代码的例子.
c# exception http-status-codes asp.net-core-mvc asp.net-core
我目前正在尝试将ASP.net MVC 5项目迁移到MVC 6.
我将如何迁移以下代码:
public static class SectionExtensions
{
public static HelperResult RenderSection(this WebPageBase webPage, [RazorSection] string name, Func<dynamic, HelperResult> defaultContents)
{
return webPage.IsSectionDefined(name) ? webPage.RenderSection(name) : defaultContents(null);
}
}
Run Code Online (Sandbox Code Playgroud)
[RazorSection]是JetBrains.Annotations程序集的一部分.
migration extension-methods view asp.net-core-mvc asp.net-core
我正在尝试将一些现有代码从MVC5迁移到MVC6,我对这个特定代码有困难:
Engine.Razor.RunCompile(File.ReadAllText(emailTemplatePath), "emailTemplateKey", typeof (EmailViewModel), emailViewModel);
Run Code Online (Sandbox Code Playgroud)
我收到以下运行时错误:
MissingMethodException: Method not found: "Void Microsoft.AspNet.Razor.CodeGenerators.GeneratedClassContext.set_ResolveUrlMethodName(System.String)". in RazorEngine.Compilation.CompilerServiceBase.CreateHost(Type templateType, Type modelType, String className)
Run Code Online (Sandbox Code Playgroud)
我在MVC5中使用的原始代码是从这里获取的.如果无法将上述代码转换为使用MVC6,那么另一种优雅的电子邮件模板方式是什么?
这是我的Dependency属性:
public static readonly DependencyProperty ButtonTapSoundProperty = DependencyProperty.RegisterAttached("ButtonTapSound", typeof (Uri), typeof (ButtonDependencyObject), new PropertyMetadata(default(Uri), UriChanged));
Run Code Online (Sandbox Code Playgroud)
然后我像这样使用它:
<Button buttonDependencyObject:ButtonDependencyObject.ButtonTapSound="{Binding ElementName=TapSound}" ... />
Run Code Online (Sandbox Code Playgroud)
这在设计时和运行时非常有效.
但是,如果我在控件模板中定义它,如下所示:
<ControlTemplate x:Name="TapSound" TargetType="Button">
<Button buttonDependencyObject:ButtonDependencyObject.ButtonTapSound="{Binding ElementName=TapSound}" ... />
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
它在运行时工作,但在Visual Studio设计器中不工作
问题出在标题中.对每个图像使用此标记助手似乎是合乎逻辑的,但如果我确实认为为什么这不是默认值?
这有什么性能影响吗?有没有我不应该用这个标签助手装饰图像的情况?
我已经能够成功运行asp.net mvc6本地化示例应用程序,但所有.resx文件都放在一个"resources"文件夹中.
如果您查看此示例应用程序您将注意到所有资源都放在根目录文件夹中:"Resources"并在Startup.cs文件中引用它,如下所示:
services
.AddMvc()
.AddViewLocalization(options => options.ResourcesPath = "Resources")
.AddDataAnnotationsLocalization();
Run Code Online (Sandbox Code Playgroud)
我正在处理的当前应用程序有多个区域,理想情况下我想更好地组织这些.resx文件.否则它会变得非常混乱.
这在MVC6中甚至可能吗?
如果我有一个付款价值对象,它可以由两个不同的聚合根共享吗?或者我应该复制它?
两种选择都错了!
design-patterns domain-driven-design dry aggregateroot value-objects
我是WPF和MVVM的新手.这就是我通常为ASP.net应用程序设置我的架构的方法:
数据层
我通常使用ORM工具将数据持久化到数据库.
业务层
这包括我的所有业务模型和业务逻辑.
服务层
该层用作后端系统的入口点.(有时通过WCF).该层负责将业务模型转换为View模型.
表达层
该层用于表示逻辑.
我知道MVVM的视图是.XAML文件并驻留在WPF应用程序中.但是我对"模型"和"ViewModel"有点困惑,因为我的业务层中已经有一个"模型",而我的ServiceLayer中有一个"ViewModel".我可以使用这些,但这意味着我的服务层将绑定到特定的实现,因为它需要包括:RelayCommand,Oberservable Objects等.
这个问题的推荐方法是什么?我错过了什么吗?是否应该有另一层抽象,以便表示层(WPF)包括"View","ViewModel"和"Model"?
asp.net-core ×6
asp.net-mvc ×2
c# ×2
.net ×1
architecture ×1
asp.net ×1
dry ×1
exception ×1
iis ×1
iis-express ×1
localization ×1
migration ×1
mvvm ×1
razor ×1
razorengine ×1
resources ×1
tag-helpers ×1
templates ×1
view ×1
views ×1
winrt-xaml ×1
wpf ×1