我有一个带有过滤器的ASP.NET应用程序,RegisterGlobalFilters
它执行以下操作:
public class XFrameOptionsAttribute : ActionFilterAttribute
{
public override void OnResultExecuting(System.Web.Mvc.ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.AddHeader("X-FRAME-OPTIONS", "SAMEORIGIN");
}
}
Run Code Online (Sandbox Code Playgroud)
查看Fiddler,我可以看到从Web服务器返回的视图包含此标题.但是,静态文件(例如JavaScript)在HTTP响应中不包含此标头.
如何让ASP.NET MVC也将此过滤器应用于Web服务器返回的任何静态文件?
有人可以详细说明或指出一些有关DFSVC.EXE在ClickOnce应用程序的执行周期中扮演什么角色的信息吗?如果我通过以下方式启动ClickOnce应用程序:
rundll32.exe dfshim.dll,ShOpenVerbApplication http://www.domain.com/application/?param1=foo
Run Code Online (Sandbox Code Playgroud)
我看到DFSVC.EXE进程已启动.然后我看到我的ClickOnce应用程序的实际EXE进程被调用(由DFSVC.EXE,它被列为ProcessExplorer中的父进程).在这个时间点,我可以通过以下方式杀死DFSVC.EXE:
rundll32.exe dfshim.dll,KillService
Run Code Online (Sandbox Code Playgroud)
并且我的ClickOnce应用程序继续运行.我还注意到,如果我不杀死DFSVC.EXE,它将在大约15分钟后自行消失.
我怀疑DFSVC.EXE负责下载,安装和启动应用程序 - 这是正确的吗?有没有办法告诉DFSVC.EXE在调用ClickOnce应用程序完成这些任务后自动关闭?它是否持久化(即使在关闭ClickOnce应用程序之后)是对下一次调用ClickOnce应用程序的优化?
我有一个Visual Studio 2012 MVC Web项目,我使用IIS Express作为开发环境中的Web服务器.默认情况下,IIS Express将其所有配置选项存储在Documents\IISExpress\config\applicationhost.config中.我想将我的应用程序的站点配置隔离到一个独立的IIS Express配置文件中,并将其与所有其他项目资产一起存储在源代码管理中.这很容易做到,但是当我在Visual Studio中开始调试时,我正在努力使Visual Studio告诉IISExpress使用此配置文件.我可以手动启动IISExpress并通过/ config:参数传递配置文件,这很有效,但是当Visual Studio启动IIS Express时,我没有看到任何将命令行参数传递给IIS Express的方法.我在.csproj中寻找一个可以填充与IIS Express命令行参数相关的字段并且一无所获.
我还尝试将Web项目的"开始操作"设置为"启动外部程序",并使用我指定的命令行参数将此程序设置为IIS Express,并将"服务器"部分设置为"使用自定义Web服务器",但是这样总是会出现一条消息,指出"无法在Web服务器上启动调试".看来,当以这种方式配置时,Visual Studio尝试在实际执行"启动外部程序"中指定的命令之前附加到Web服务器主机进程
如果我尝试将IISExpress作为"Post Build Event"运行,它实际上会运行,但这会阻止Visual Studio实际继续执行我的调试代码(我猜它正在等待IIS Express退出 - 这会打败整个目的).
我错过了什么?如何将IIS Express与Visual Studio项目中的自定义配置文件集成?
.net visual-studio visual-studio-debugging iis-express visual-studio-2012
Microsoft Office 注册了多个协议处理程序,例如ms-word
,等等。此处ms-excel
提供了有限的文档。我正在尝试使用 Excel 协议处理程序打开一个文档,向其传递文件 uri,但运气不佳。我可以毫无问题地使用 http/https uri 进行操作,但在我的情况下,文档驻留在网络文件共享上。
如果文档位于 Web 服务器上,则此方法有效:
ms-excel:ofv|u|http://someserver/somefolder/document.xlsx
这不起作用:
ms-excel:ofv|u|file://someserver/somefolder/document.xlsx
我收到以下错误:
无法执行该操作,因为 Office 无法识别为其提供的命令。
有没有办法让这些协议处理程序与文件 URI 一起工作?
我发现该Oracle.ManagedDataAccess.Client
驱动程序库比标准 ODP.NET 250mb+ Oracle 客户端库更容易在 .NET 应用程序中使用和部署。
有什么方法可以将 Oracle 驱动程序的托管版本与 SQL Server Integration Services (SSIS) 一起使用吗?
我使用的是最新版本的 ManagedDataAccess 客户端 (121.1.2) 和 SQL Server 2012。
我正在尝试将 SSDT v15.6.0 安装到现有的 Visual Studio Team Explorer 2017 实例中。当我运行 SSDT 安装程序时,我可以从此现有 Visual Studio 实例列表中选择 Visual Studio Team Explorer 2017。如果我没有选择任何选项(所需的 SQL Server 数据库选项除外)。安装成功完成。
但是,如果我尝试选择任何/所有其他选项,安装将失败。从查看日志文件来看,VSIX 的安装似乎由于缺少所需的组件而失败。
下面是 SSDT-Setup 安装日志文件的片段,表明 VSIX 安装失败。
[167C:1A6C][2018-05-16T15:40:41]i301: Applying execute package: Microsoft.DataTools.IntegrationServices, action: Install, path: C:\ProgramData\Package Cache\9864EE5369359DB622D0234B6C6B7640B949140C\VSIXBootstrapper.exe, arguments: '"C:\ProgramData\Package Cache\9864EE5369359DB622D0234B6C6B7640B949140C\VSIXBootstrapper.exe" /q /admin /instanceIds:"68f392fc" /logFile:"C:\Users\golaat\AppData\Local\Temp\SsdtSetup\SSDT-Setup-ENU_20180516153141_009_Microsoft.DataTools.IntegrationServices.log" "payload\Microsoft.DataTools.IntegrationServices.vsix"'
[167C:1A6C][2018-05-16T15:41:13]e000: Error 0x80131500: Process returned error: 0x80131500
[167C:1A6C][2018-05-16T15:41:13]e000: Error 0x80131500: Failed to execute EXE package.
[1D80:1858][2018-05-16T15:41:13]e000: Error 0x80131500: Failed to configure per-machine EXE package.
Run Code Online (Sandbox Code Playgroud)
查看安装 VSIX 的日志文件,似乎缺少必需的组件:
5/16/2018 3:41:05 PM - BEGIN: …
Run Code Online (Sandbox Code Playgroud) volumes
我正在尝试在我的 .conf 部分安装一个文件(nginx.conf)docker-compose.yml
。我可以毫无问题地将目录挂载为卷,但是,我不清楚文件的语法是什么。
volumes
我在我的部分定义了以下内容
volumes:
roundcubeweb:
driver: local
driver_opts:
type: none
o: bind
device: /mnt/docker/volumes/roundcube/html
nginxconf:
driver: local
driver_opts:
type: none
o: bind
device: /mnt/docker/volumes/roundcube/nginx.conf
Run Code Online (Sandbox Code Playgroud)
后来,我的服务部分下有以下内容
nginx:
image: nginx:latest
deploy:
replicas: 1
restart: always
depends_on:
- roundcube
ports:
- "8082:80"
volumes:
- roundcubeweb:/var/www/html
- nginxconf:/etc/nginx/conf.d/default.conf
Run Code Online (Sandbox Code Playgroud)
当我尝试启动它时,我收到以下错误:
错误:对于 roundcube_nginx_1 无法为服务 nginx 创建容器:无法安装本地卷:mount /mnt/docker /volumes/roundcube/nginx.conf:/var/lib/docker/volumes/roundcube_nginxconf/_data,标志:0x1000:不是目录
错误:对于 nginx 无法为服务 nginx 创建容器:无法安装本地卷:mount /mnt/docker/volumes/rou ndcube/nginx.conf:/var/lib/docker/volumes/roundcube_nginxconf/_data,标志:0x1000:不是目录错误:启动项目时遇到错误。
我发现,如果我将文件位置内联到 nginx 服务部分的卷声明中,那么它就可以正常工作。例如:
volumes:
- roundcubeweb:/var/www/html
- /mnt/docker/volumes/roundcube/nginx.conf:/etc/nginx/conf.d/default.conf
Run Code Online (Sandbox Code Playgroud)
不能在该volumes
部分挂载文件吗?有本地驱动参数参考吗?
在XP和Windows 7上执行以下操作会在.NET4与.NET2控制台应用程序中产生不同的结果:
Console.WriteLine(String.Format("DateTime.Parse on Client: {0}",
DateTime.Parse("1998-10-31T00:00:00-04:00")));
Run Code Online (Sandbox Code Playgroud)
.NET4
在XP下返回: 10/31/1998 12:00:00 AM
在Windows 7/Windows 8下返回: 10/30/1998 11:00:00 PM
.NET2
在XP下返回: 10/31/1998 12:00:00 AM
在Windows 7/Windows 8下返回: 10/31/1998 12:00:00 AM
为什么??!?
从字符串中删除TimeZone(-04:00)会导致.NET4下的XP和Windows 7上的值相同.当从字符串执行DateTime.Parse时,Windows XP似乎在.NET4下以不同的方式应用时区偏移量.有没有办法改变这种行为,以便它在.NET4下是一致的,无论操作系统如何(不涉及操纵发送到DateTime.Parse的字符串)
环境: 所有计算机都安装了最新的修补程序(可通过Windows Update获得),并配置为"东部时间",并在"时区设置"中选中"自动调整夏令时的时钟".
我已在使用.NET4的Windows 7计算机和使用.NET4.5的Windows 7计算机上确认了此行为
我有一个存储库类,其GetAsQueryable
方法定义如下:
public class Repository<TEntity> : IDisposable, IRepository<TEntity> where TEntity : class
{
internal DbSet<TEntity> _DbSet;
public virtual IQueryable<TEntity> GetAsQueryable(
Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
string includeProperties = "")
{
IQueryable<TEntity> query = _DbSet;
if (filter != null)
{
query = query.Where(filter);
}
foreach (var includeProperty in includeProperties.Split
(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
if (orderBy != null)
{
return orderBy(query);
}
else
{
return query;
}
}
} …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下内容:
我的Knockout View Model模板如下所示:
<tbody data-bind="foreach:recipientEmailAddressList">
<tr>
<td class="no-padding" style="width:330px">
<input class="suppress-ms-clear input-parameter full-width" data-bind="value:EmailAddress, hasfocus:EmailAddress.focused" name="EmailAddresses" data-val="true" data-val-email="Please enter a valid email address.">
</td>
<td class="no-padding align-right">
<div class="delete" data-bind="visible: $root.recipientEmailAddressList().length > 1">
<a href="" data-bind="click:$root.removeRecipientEmailAddress"><span class="no-wrap">X</span></a>
</div>
</td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
我在MVC视图中也有以下内容:
@Html.ValidationSummary(false)
Run Code Online (Sandbox Code Playgroud)
当我添加未通过验证的电子邮件时,无效元素样式正确应用于input元素,但验证摘要不会显示验证错误.同样,即使明显存在验证错误,也允许用户提交页面.
我没有任何绑定到表单的submit元素的代码.
似乎不引人注意的验证通过应用错误样式知道存在问题,但为什么它没有显示验证摘要?为什么我可以提交表格?如果我更正了电子邮件地址以使其有效,则输入上的错误样式将消失.
javascript jquery unobtrusive-validation asp.net-mvc-4 knockout.js
我正在与Jekyll和GitHub风味降价合作.最终结果是在GitHub页面上托管内容.我有一个表,我希望在其中一行的第2列中有一个换行符.这样做的正确方法是什么?我当然可以插入一个<br/>
和GitHub似乎很荣幸 - 但这是正确的方法吗?在表格内容中插入物理换行符似乎会破坏表格的渲染.
First Header | Second Header
------------- | -------------
Content Cell | Content Cell Line 1
| Content Cell Line 2
Content Cell | Content Cell
Run Code Online (Sandbox Code Playgroud) 我在Windows 7环境中执行的CMD.EXE批处理文件中有以下命令:
FOR %%f IN ("C:\TEMP\FILE.TXT" "C:\TEMP\FILE2.TXT") DO (
ECHO %%f
)
Run Code Online (Sandbox Code Playgroud)
这会产生以下输出:
"C:\TEMP\FILE.TXT"
"C:\TEMP\FILE2.TXT"
Run Code Online (Sandbox Code Playgroud)
但是,我发现如果我更改FOR
命令以包含存在的外卡如?或*在文件名中,我得到了我期望的结果,这只是C:\ TEMP\FILE2.TXT的回声
IE:
FOR %%f IN ("C:\TEMP\FILE.TXT?" "C:\TEMP\FILE2.TXT?") DO (
ECHO %%f
)
Run Code Online (Sandbox Code Playgroud)
生产:
C:\TEMP\file2.txt
该FOR
命令的文档说明:
Run Code Online (Sandbox Code Playgroud)FOR %variable IN (set) DO command [command-parameters] %variable Specifies a single letter replaceable parameter. (set) Specifies a set of one or more files. Wildcards may be used. command Specifies the command to carry out for each file. …
我们最近将 Azure DevOps 组织从免费托管代理产品切换为两个付费托管代理。添加第二个托管代理后,它会自动命名为“Azure Pipelines 2”,这是一个足够好的名称。问题是原始代理似乎被命名为“托管代理”,我一生都找不到重命名它的方法。如果可以将其重命名为“Azure Pipelines 1”,那就太好了。是否可以重命名托管代理?如果是这样,如何执行此操作,因为我在“组织设置”中的“代理池”选项中查看过,但没有看到任何方法可以执行此操作。
.net ×3
windows ×3
c# ×2
asp.net ×1
asp.net-mvc ×1
azure-devops ×1
batch-file ×1
clickonce ×1
cmd ×1
date ×1
datetime ×1
docker ×1
for-loop ×1
iis-express ×1
javascript ×1
jekyll ×1
jquery ×1
knockout.js ×1
lambda ×1
linq ×1
markdown ×1
ms-office ×1
odp.net ×1
oracle ×1
parsing ×1
protocols ×1
ssis ×1
uri ×1