我正在使用ASP.NET Web API 2开发REST API.当我尝试将日期集成到游戏中时,这会变得很糟糕.
这是路线:
[Route("{id:Guid}/{from:DateTime}/{to:DateTime}")]
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我可以完美地传递类似的东西
.../[id]/2012-01-01/2013-01-01
Run Code Online (Sandbox Code Playgroud)
然而,当我到达需要时间信息的地步时,它变得非常糟糕,让我们想象一下:
.../[id]/2012-01-01/2013-01-01 1:45:30 PM/2013-01-01 1:45:30 PM
Run Code Online (Sandbox Code Playgroud)
似乎空间正常,但":"正在阻塞.所以我虽然应该使用我自己的格式,因为yyyyMMddhhmm.这给出了以下URL:
.../[id]/201301031147/201401031147
Run Code Online (Sandbox Code Playgroud)
但是,.NET并不期望这是一个DateTime,也不知道如何使用它.所以我使用IHttpRouteConstraint来允许它.问题是,在我告诉它没关系后,它仍然不知道如何处理它...
所以我的问题是,你如何将DateTime传递给路线?
当你awaita时Task,默认的延续在同一个线程上运行.您实际需要的唯一时间是,如果您在UI线程上,并且延续也需要在UI线程上运行.
你可以通过使用ConfigureAwait,例如:
await SomeMethodAsync().ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)
...这对于从不需要在那里运行的UI线程卸载工作非常有用.(但请参阅Stephen Cleary在下面的评论.)
现在考虑这段代码:
try
{
await ThrowingMethodAsync().ConfigureAwait(false);
}
catch (Exception e)
{
// Which thread am I on now?
}
Run Code Online (Sandbox Code Playgroud)
那怎么样?
try
{
await NonThrowingMethodAsync().ConfigureAwait(false);
// At this point we *may* be on a different thread
await ThrowingMethodAsync().ConfigureAwait(false);
}
catch (Exception e)
{
// Which thread am I on now?
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试查找特定WebJob的函数执行的详细信息.不幸的是,Kudu中的功能仪表板显示重复,惊叹号,并且超过两个月没有执行任何功能.
尝试使用Azure CLI列出WebJob的运行会产生错误NotFound.
WebJob已被移动到可能相关的其他Web应用程序.
如果所有的记录历史记录都被擦除并且一切都重置了,那么我只想再次工作了!有任何想法吗?
有什么方法可以配置我manifest.json禁用浏览器弹出窗口,要求“安装”站点?我正在使用以下 JavaScript 代码来防止它:
window.addEventListener('beforeinstallprompt', function(e) {
e.preventDefault();
return false;
});
Run Code Online (Sandbox Code Playgroud)
但是我也需要在 AMP 版本上阻止它,而且我无法在那里运行 JavaScript 代码。
javascript service-worker amp-html progressive-web-apps manifest.json
我目前正在阅读:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-auto-failover-group,我很难理解自动故障转移策略:
默认情况下,故障转移组配置有自动故障转移策略。SQL 数据库服务在检测到故障并且宽限期已过后触发故障转移。由于影响的规模,系统必须验证 SQL 数据库服务的内置高可用性基础结构无法缓解中断。如果要从应用程序控制故障转移工作流,可以关闭自动故障转移。
在 ARM 模板中定义故障转移组时:
{
"condition": "[equals(parameters('redundancyId'), 'pri')]",
"type": "Microsoft.Sql/servers",
"kind": "v12.0",
"name": "[variables('sqlServerPrimaryName')]",
"apiVersion": "2014-04-01-preview",
"location": "[parameters('location')]",
"properties": {
"administratorLogin": "[parameters('sqlServerPrimaryAdminUsername')]",
"administratorLoginPassword": "[parameters('sqlServerPrimaryAdminPassword')]",
"version": "12.0"
},
"resources": [
{
"condition": "[equals(parameters('redundancyId'), 'pri')]",
"apiVersion": "2015-05-01-preview",
"type": "failoverGroups",
"name": "[variables('sqlFailoverGroupName')]",
"properties": {
"serverName": "[variables('sqlServerPrimaryName')]",
"partnerServers": [
{
"id": "[resourceId('Microsoft.Sql/servers/', variables('sqlServerSecondaryName'))]"
}
],
"readWriteEndpoint": {
"failoverPolicy": "Automatic",
"failoverWithDataLossGracePeriodMinutes": 60
},
"readOnlyEndpoint": {
"failoverPolicy": "Disabled"
},
"databases": [
"[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('sqlDatabaseName'))]"
]
},
"dependsOn": [
"[variables('sqlServerPrimaryName')]",
"[resourceId('Microsoft.Sql/servers/databases', …Run Code Online (Sandbox Code Playgroud) 我的公司正在研究编写一个自定义应用程序,该应用程序需要跨多个网站集执行许多列表项查询.它将需要为WSS 3.0运行,如果它也适用于WSS 2.0,它将"很好".它不会被设计用于MOSS/SPS,但如果它在这些平台上工作,它将"很好".对于解决方案,应该使用哪个.NET版本没有限制.
对于这种类型的应用程序,哪个更好:对象模型/ API或SharePoint Web服务?我正在考虑的主要因素是性能,其次是特性和功能.谢谢!
我有一个使用DataContractSerializer进行序列化和反序列化的类(称为Container)。该类包含其他类的集合,所有其他类都继承相同的基类(称为ContentsBase),但是具有不同的派生类。可以向应用程序传递一个序列化的Container对象,该对象包含ContentsBase派生的对象,这些对象的实现我不知道或无法访问 -即,编译后的代码在本地不可用。我需要通过“忽略”我不知道的类型来反序列化此对象(我不需要往返访问它们)。
除了采用序列化的XML并编写一些自定义代码来遍历该序列并在反序列化之前删除未知元素之外,我有什么办法可以做到这一点?还是这是我唯一的选择?
我最近加入了一家公司,在分析他们的环境时,我注意到SharePoint web.config的信任级别设置为Full.我知道这是一个绝对可怕的做法,希望stackoverflow社区可以帮助我概述这个决定的缺陷.
哦,看来这个决定是为了让开发人员在没有创建CAS策略的情况下将dll部署到Bin文件夹.叹.
只是想澄清并使事情变得更糟,我们还在为此Web应用程序部署第三方代码.
在我的服务实施中,我有:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
在我的.config文件中,我有:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
和:
<system.web.extensions>
<scripting>
<webServices>
<authenticationService enabled="true" requireSSL = "false"/>
</webServices>
</scripting>
</system.web.extensions>
和:
<authentication mode="Forms" />
在我的服务的"登录"方法中,我有:
FormsAuthentication.SetAuthCookie(request.UserName, false);
但是,当我检查:
HttpContext.Current.User.Identity.Name
这是一个空字符串.我错过了什么?
我一直在开发一个需要帐户登录功能的ASP.NET WebForms应用程序(例如注册新用户,更改密码,恢复密码,配置文件,角色等).为此,我将FormsAuthentication与默认数据存储一起使用,令我惊讶的是,它是App_Data中的MDF文件.什么时候实际部署这个应用程序.住在网上,我将使用像GoDaddy或其他廉价公司这样的共享主机.
为了提高效率,我想从这个MDF切换到实际的SQL Server 2005或2008(他们正确的思想使用平面文件?).但是,使用共享主机,我将无法运行任何程序,如aspnet_regsql.exe.我只需要一个SQL Server数据库的登录名和密码,以及一个FTP帐户到域根目录.没有MSTSC远程桌面,没有控制台访问,没有在IIS中修补等等.
我不需要从ASPNETDB.MDF转移任何用户帐户(站点将从零用户开始),但我想如何:
1)当我使用Web站点管理工具开始使用FormsAuthentication时,轻松创建Visual Studio在ASPNETDB.MDF中自动创建的表,过程等?
2)让SQL成员资格提供程序使用我给它的连接字符串,而不是使用它现在连接到此ASPNETDB.MDF的任何内容.天啊,我甚至没有在web.config中看到任何与此MDF的连接字符串; 怎么到底是我的应用程序.甚至找到了吗?Machine.config中?如果是这样的话那将是一个糟糕的决定.这个幕后故事让我疯狂.
任何经过此次迁移的人的帮助都将非常非常感谢!
asp.net ×3
azure ×2
sharepoint ×2
.net ×1
.net-3.5 ×1
amp-html ×1
async-await ×1
c# ×1
cas ×1
datetime ×1
javascript ×1
kudu ×1
performance ×1
routing ×1
security ×1
wcf ×1
web-config ×1
web-services ×1