有什么方法可以在VS 2010中使用剃须刀进行智能感知,我正在开发一个带有web矩阵的应用程序,并从WebMatrix启动了VS 2010.
我想要做的是使用Visual Studio 2012附带的默认MVC 4模板作为我的新项目的基础.但是,我想用自定义成员资格提供程序替换SQL提供程序,以便我可以访问我的RavenDB来获取我的用户.我已经像以前一样实现了自定义提供程序,但WebSecurity方法抛出了以下异常.
这行代码:
ViewBag.HasLocalPassword = OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
具体方法是:
WebSecurity.GetUserId
抛出这个例外:
在调用"WebSecurity"类的任何其他方法之前,必须调用"WebSecurity.InitializeDatabaseConnection"方法.此调用应放在站点根目录中的_AppStart.cshtml文件中.
现在我无法调用InitializeDatabaseConnection,因为我的提供程序不是SQL提供程序.此方法需要SQL提供程序和SQL连接字符串.这是一个常见问题还是我错过了什么?为什么必须初始化WebSecurity,为什么只能使用SQL提供程序进行连接?
我是否必须将代码更改为不使用WebSecurity类?
我整天都在这里,我很累.我希望我没有忽视一些简单的事情.也许还有一个朗姆酒和可乐会帮助......
更新:2012年8月19日
我反编译GetUserId方法,发现它失败的唯一原因是因为VerifyProvider调用.
public static int GetUserId(string userName)
{
WebSecurity.VerifyProvider();
MembershipUser user = Membership.GetUser(userName);
if (user == null)
return -1;
else
return (int) user.ProviderUserKey;
}
private static ExtendedMembershipProvider VerifyProvider()
{
ExtendedMembershipProvider membershipProvider = Membership.Provider as ExtendedMembershipProvider;
if (membershipProvider == null)
throw new InvalidOperationException(WebDataResources.Security_NoExtendedMembershipProvider);
membershipProvider.VerifyInitialized();
return membershipProvider;
}
Run Code Online (Sandbox Code Playgroud)
现在,它在VerifyProvider方法中失败的唯一原因是因为调用了VerifyInitialized,我无法在我的成员资格提供程序中覆盖它.此外,如果它没有调用我的提供程序,那么我不确定在处理VerifyInitialized时调用了什么代码.
internal virtual void VerifyInitialized()
{
}
Run Code Online (Sandbox Code Playgroud)
我正在删除Web.Config中的所有其他成员资格提供程序.至少我想我是.这是条目.
<membership defaultProvider="RavenMembershipProvider">
<providers>
<clear />
<add name="RavenMembershipProvider" type="BigGunsGym.Infrastructure.Providers.RavenMembershipProvider" />
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud) asp.net-membership membership-provider webmatrix asp.net-mvc-4
当我尝试启动WebMatrix时,我收到一条提示"无法初始化IIS Express.请确保已正确安装和配置它".
我已经卸载并重新安装了IIS Express和WebMatrix,但没有改变这种行为.我能够在网上找到的建议是承担HKEY_CLASSES_ROOT\Microsoft.IIS.VersionManager注册表项的所有权,并用该注册表项的权限替换所有子对象权限.这似乎没有帮助.
查看事件查看器,每当iisexpresstray.exe或webmatrix.exe尝试启动时,我都可以看到.net运行时异常:
系统
- Provider [Name] .NET Runtime
- EventID 1026 [限定符] 0级别2任务0关键字0x80000000000000
- TimeCreated [SystemTime] 2012-09-29T21:28:02.000000000Z EventRecordID 162768频道应用安全
EventData应用程序:iisexpresstray.exe框架版本:v4.0.30319描述:由于未处理的异常,进程已终止.异常信息:System.ArgumentNullException> Stack:at System.Runtime.InteropServices.Marshal.FinalReleaseComObject(System.Object)at Microsoft.Web.VersionManager.IisExpressVersion.Dispose(Boolean)at Microsoft.Web.VersionManager.IisVersion.Finalize()
我非常感谢您在诊断和解决此问题时提供的任何帮助.WebMatrix对我即将推出的项目几乎是必不可少的.谢谢!
我已经花了2天时间阅读过多篇文章/文章而没有解决这个问题.我正在使用sp/3在XP Pro上运行WebMatrix 2.在我尝试通过Web Gallery打开Word Press之前,WM就像一个魅力.每次我收到消息说
"安装失败,因为php-cgi.exe不可用.请重新运行PHP的Windows安装程序并启用'IIs FastCGI'或'其他CGI'." 由于同样的原因,PHP启动站点也失败了.
显然所有的php文件都是由webmatrix安装的(包括php-cgi.exe)所以我无法弄清楚为什么word press(以及PHP启动站点)失败并不断抛出此错误.
我甚至在未使用的笔记本电脑上尝试了全新的WebMatrix安装,没有现有的PHP或mySql文件,并得到了完全相同的结果.显然,WebMatrix程序内置了一个关于运行PHP的漏洞.
我很难相信MSFT甚至会发布这样的功能问题.我不是在敲MSFT,因为我认为WM是一个很棒的产品.但是,如果有已知的安装后步骤需要采取措施,那么抬头就会很好.我希望WebMatrix 3用户不会遇到同样的问题.
有没有人能够解决这个问题?任何帮助解决这个问题将不胜感激.谢谢你的帮助.
我正在使用Validation.Add()
和Html.TextBox()
(以及相关的)帮助器与不显眼的 JavaScript 错误检查相结合,并且对结果非常满意。它用一组代码涵盖了服务器和客户端,通常我已经能够实现我需要的一切。
不过,我遇到了一些障碍,因为有时您需要运行自己的逻辑来建立错误情况。如果此错误直接与某个字段相关,那么最好使用任意错误消息手动将该字段标记为错误源 - 我相当确定没有办法立即执行此操作。为了澄清我的意思,一个示例是用户名字段,需要检查用户名是否已在使用中 - 如果是,则会生成错误。
目前,我使用 将其添加到表单错误集合中Validation.AddFormError()
,该方法有效,但仅在摘要中显示错误。在上面的示例中,错误显然与用户名字段相关,因此能够将该错误与适当的字段名称联系起来(并将其显示在正确的位置)似乎是合乎逻辑的。
我应该从 派生RequestFieldValidatorBase
并创建一个仅返回到 的验证器false
吗IsValid()
?显然,作为服务器端检查,我不希望在客户端检查它,尽管我知道通过为验证系统编写更具体的验证器和插件、公开更多data-
属性并执行 AJAX也可以实现这一点查看。我对这个问题感兴趣的是一个更通用的解决方案:将特定字段标记为服务器端错误的来源。
希望这是有道理的。人们会推荐什么作为解决这个问题的最佳方法?
我绝对喜欢崇高的文字,喜欢在上面编码,但我喜欢 webmatrix 简单整洁的默认主题。我只是喜欢它的用户界面,有人知道类似于 webmatrix 的 Sublime 文本主题吗?我能找到的最接近的主题是与 sublime 文本捆绑在一起的 mac 经典主题的变体。
我刚刚安装了WebMatrix 3.0.当我单击功能区上的NuGet扩展以加载某些扩展时,我收到一条错误消息,指出安装的NuGret版本(2.2显然)与.Net.Http dll的版本不兼容.我已经尝试通过扩展管理器升级NuGet,但似乎没有办法做到这一点 - 只有一个禁用和卸载选项.关于这里发生了什么的任何想法?为什么与WebMatrix 3.0一起安装了不兼容的NuGet版本?
堆栈跟踪的错误消息如下:
An error occurred.
The schema version of 'Microsoft.Net.Http' is incompatible with version 2.2.31210.9045 of NuGet. Please upgrade NuGet to the latest version from http://go.microsoft.com/fwlink/?LinkId=213942.
System.InvalidOperationException: The schema version of 'Microsoft.Net.Http' is incompatible with version 2.2.31210.9045 of NuGet. Please upgrade NuGet to the latest version from http://go.microsoft.com/fwlink/?LinkId=213942.
at NuGet.Manifest.CheckSchemaVersion(XDocument document)
at NuGet.Manifest.ValidateManifestSchema(XDocument document, String schemaNamespace)
at NuGet.Manifest.ReadFrom(Stream stream, IPropertyProvider propertyProvider)
at NuGet.LocalPackage.ReadManifest(Stream manifestStream)
at NuGet.ZipPackage.EnsureManifest()
at NuGet.ZipPackage..ctor(Func`1 streamFactory, Boolean enableCaching)
at NuGet.PackageDownloader.DownloadPackage(IHttpClient downloadClient, IPackageMetadata …
Run Code Online (Sandbox Code Playgroud) 我使用Razor .cshtml页面的会话变量获得了一些时髦的行为.基本上在某些页面上,我检查是否设置了Session变量,如果不是,我设置它.我一直得到一个空对象引用.
我相信这是因为最终Razor是为MVC设计的,我做了一些关于MVC生命周期的阅读,显然会话对象注入了lifecyde中的不同点然后说asp.net webforms.所以当我尝试在我的网页上使用它时,它还没有.
所以我的问题是基于Razor的简单站点(不是MVC,但是那样移动)检查是否设置了会话变量(比如说"访问级别"),这是经常检查的.那将是问题的第一部分.
问题的第二部分是,如果这是不好的做法,那么我应该做些什么来取代这种方法呢?
谢谢您的意见.
我有一个扩展名为.html的文件,其中包含:
<!--#include virtual="filename"-->
Run Code Online (Sandbox Code Playgroud)
指令,我正在使用Microsoft WebMatrix.当我从WebMatrix运行网页时,指令不会被处理,而是指令显示在HTML中.如何配置WebMatrix以将这些页面视为.asp文件?
哪里是存储静态值的最佳位置.我将如何访问它.
我希望能够从任何页面访问静态值.但只需要在一个地方定义它们.
例如'email'和'phoneNumber'
我曾尝试之类的东西Session
,并PageData
和定义在我的头中的变量(所有页面上使用),但这不起作用.
部分在页面之后初始化,因此它要么根本不起作用,要么在第一次加载时不起作用.
例如第一次加载:
页面已加载< - 尝试访问变量.没有初始化.
标题部分加载< - 变量初始化.
结果.页面并没有显示出不同.
我考虑过将它存储在配置文件中.但我不知道如何从Webmatrix 2访问它.我可以创建一个txt/ini文件或其他东西,但肯定解析文件不是最好的方法. - 我已经尝试了这个,它似乎没有像mvc3(config)那样有效,并且txt文件对于每个请求都不实用.
webmatrix ×10
asp.net ×2
razor ×2
webmatrix-2 ×2
.net ×1
.net-4.0 ×1
asp.net-mvc ×1
c# ×1
iis ×1
iis-7.5 ×1
iis-express ×1
nuget ×1
php ×1
session ×1
sublimetext2 ×1
sublimetext3 ×1
themes ×1
wordpress ×1