我是SignalR的新手,我一直在关注Microsoft Academy MVC 4教程.在安装SignalR时,我遇到了障碍.
步骤:创建一个全新的MVC4 Web应用程序(Internet应用程序),Build,转到NuGet包管理器并找到"Microsoft ASP.NET SignalR",按安装.我收到以下错误消息:"无法卸载'Newtonsoft.Json 5.0.8'因为'Microsoft.AspNet.WebApi.Client 4.0.20710.0'取决于它."
如果我第二次尝试,我会收到以下错误:"无法安装软件包'Microsoft.Owin.Security 2.0.1'.您正在尝试将此软件包安装到一个针对'.NETFramework,Version = v4.0'的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件.有关更多信息,请与程序包作者联系.
我已经尝试了所有内置模板.该演示似乎是使用VS2012(我是),所以我不明白这是什么问题.我注意到,当我暂停演示时,他们正在安装v1.1.3,而我的是v2.0.0
我是MVC的新手,是nuget和SignalR的新手.如果有人有任何提示或替代方案,我会很感激.
我已经阅读了大量类似的StackOverflow问题但似乎没有解决我看到的问题.如果我使用userprincipalname查询用户,我会返回一个包含34个属性的搜索结果.没有返回任何自定义属性.如果我使用像employeeNumber这样的自定义属性再次查询,我会得到71个属性的结果.包括所有自定义属性.
我的问题是我在运行时没有employeeNumber,只有userprincipalname.我需要一直恢复所有自定义属性.希望这是有道理的.这是我的练习代码:
string sid = "";
using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
UserPrincipal user = UserPrincipal.Current;
//sid = user.SamAccountName;
sid = user.UserPrincipalName;
//sid = user.Sid.ToString();
DirectoryEntry entry = user.GetUnderlyingObject() as DirectoryEntry;
if (entry.Properties.Contains("employeeNumber"))
{
//this doesn't work
}
}
DirectoryEntry ldapConnection = new DirectoryEntry("companyname.com");
ldapConnection.Path = "LDAP://DC=companyname,DC=com";
ldapConnection.AuthenticationType = AuthenticationTypes.Secure;
DirectorySearcher search = new DirectorySearcher(ldapConnection);
search.Filter = string.Format("(&(ObjectClass=user)(userprincipalname={0}))", sid); // <-- this doesn't get custom properties
//search.Filter = string.Format("(employeeNumber={0})", "11663"); <-- …
Run Code Online (Sandbox Code Playgroud) 我写了一个无法正常工作的计时器方法。它应该在表单上显示经过的时间,但它是按 2 或 3 计数而不是每秒一次。什么可能导致这种行为,我该如何解决?
我的代码:
function startTimer() {
var minutes, seconds;
setInterval(function () {
if (!isPaused) {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
$('#TimeLabel').text("Form Time: " + minutes + ":" + seconds);
++timer;
}
}, 1000);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码显示“表单时间:00:01”然后“表单时间:00:04”然后“表单时间:00:07”等。
我在VS2015中创建了一个非常简单的MVC应用程序,它有一些基本的CSS样式和一些HTML,可以更快地启动应用程序.
该应用程序运行完美.
我使用文件 - >导出模板将其导出为模板...
然后我根据这个项目类型创建了一个全新的项目.到现在为止还挺好.但是,现在当我运行新创建的项目时,我得到一个带有"拒绝访问"的空白页面(见图).
我一直在用模具梳子检查模板项目和新项目,我找不到任何差异.为什么一个工作但另一个工作被拒绝?我没有想法,任何帮助表示赞赏.
编辑:
经过更多的研究,我找到了问题的原因,但不是解决方案.
项目模板似乎已将"匿名身份验证"设置为"已禁用",并且在项目设置中将"Windows身份验证"设置为"已启用".但是,当我基于模板创建项目时,这些值会被翻转,从而导致拒绝访问.
这是模板中项目设置的图像:
这是"新"项目中项目设置的图像:
请注意,两个身份验证设置都被翻转.任何人都可以告诉我如何让这不发生?
编辑2:
正如所建议的那样,applicationhost.config文件是不同的,这导致了上述问题.以下是模板的applicationhost.config安全性部分:
但是,这是基于模板创建的新项目中的相同文件:
请注意,该部分完全从新项目中丢失.那么,现在的问题是如何将其复制到新项目中?
我在Sql Server 2012中创建了一个新用户,“偶然”将它们标记为多个架构的所有者。我本打算将它们标记为架构的成员,但我的标签不正确!
因为他们现在是架构的所有者,所以我不能取消选择所有权,也不能删除用户。我该如何消除我的错误?
这已经困扰了我一段时间了。在Typescript中,如果我定义一个For-in循环,则我的变量始终被视为字符串。例:
for(var room in this.rooms) {
room.placement.x = 52;
}
Run Code Online (Sandbox Code Playgroud)
“ room.placement.x”将失败,因为它将“ room”视为字符串。“ this.rooms”实际上是Room对象的集合,但是room不是Room,而是一个字符串。
这是Typescript版本问题还是存在的问题。非常令人沮丧。
有没有一种方法可以定义房间,以便Typescript可以将其视为房间?
房间的定义是:“私人房间:Room.Game.Room [];”
它是一个自定义对象的数组。
我是品牌新Unity3D 5,我有我的第一个2D游戏,涉及碰撞检测的问题。我的移动物体是一个球,有 Rigidbody2D 和 CircleCollider2D。我的固定“碰撞器或触发器”是一个 BoxCollider 并附有一个脚本。OnTriggerEnter2D 应该在球穿过固定框时触发。我也试过 OnCollisionEnter2D 但我相当肯定我应该使用 OnTriggerEnter2D 因为我的固定框被标记为触发器。
我的代码:
public class LoseCollider : MonoBehaviour {
public LevelManager levelManager;
void OnCollisionEnter2D(Collision2D collision)
{
print("collide");
levelManager.LoadLevel("Lose");
}
void OnTriggerEnter2D(Collider2D trigger)
{
print("trigger");
levelManager.LoadLevel("Lose");
}
void OnCollisionEnter(Collision collision)
{
print("collide");
levelManager.LoadLevel("Lose");
}
void OnTriggerEnter(Collider trigger)
{
print("trigger");
levelManager.LoadLevel("Lose");
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在测试所有变体,但没有调用任何变体。这是我的对象的 Unity 属性:
和
我确定我错过了一些简单的东西,如果有人可以请向我指出。