我在WPF C#中编程.我有以下路径:
C:\Program Files\hello.txt
Run Code Online (Sandbox Code Playgroud)
我想从中输出" 你好 ".
该路径是数据库中的字符串提取.目前我正在使用以下方法(从'\'拆分路径然后再用'.'拆分):
string path = "C:\\Program Files\\hello.txt";
string[] pathArr = path.Split('\\');
string[] fileArr = pathArr.Last().Split('.');
string fileName = fileArr.Last().ToString();
Run Code Online (Sandbox Code Playgroud)
它有效,但我相信应该有更短更智能的解决方案.任何的想法?
我试图从我的ASP.NET应用程序中读取一些性能计数器.当我这样做时,我收到错误"访问注册表项'全局'被拒绝."
我已尝试按照此处和此处的说明使用用户IIS AppPool\DefaultAppPool,这是我的应用程序池配置使用的标识:

我已将该用户添加到Performance Monitor Users组:

添加用户后,我重新启动了计算机.但我仍然得到错误.
我还尝试将用户IUSR和NETWORK SERVICE添加到性能监视器用户组,但这些也不起作用.出于绝望,我尝试将用户"Everyone"添加到Performance Monitor Users组,这实际上确实有效.但我的目标是在生产中记录我的应用程序中的统计信息,并且我不想在生产服务器上向该组添加"Everyone".
在不产生安全性异常的情况下读取性能计数器还需要做些什么?
我有一组JavaScript"类",其中基类定义函数,然后由继承的类共享.它工作正常,它设置如下:
var ThingA = function(name) {
this.name = name;
};
ThingA.prototype = {
sayHi: function() {
alert('Hi, ' + this.name + '!');
}
};
var ThingB = function() {
ThingA.call(this, 'Charlie');
};
ThingB.prototype = new ThingA();
ThingB.prototype.constructor = ThingB;
var instanceOfB = new ThingB();
instanceOfB.sayHi(); // alerts 'Hi, Charlie!'
Run Code Online (Sandbox Code Playgroud)
由于我无法控制的原因,我的公司在编写JavaScript时更喜欢遵循这种模式:
SomeClass = function() {
// "Private" functions go here
function somePrivateMethod() {
...
}
return {
// "Public" methods go here
somePublicMethod: function() { ... }
};
}();
Run Code Online (Sandbox Code Playgroud)
现在,就事情而言,这很好,并且在许多情况下它都能很好地运行.但它更像是一种功能性风格.只有一个"类"实例,一切都是静态的.
我被要求修改我的工作代码,以更贴近我公司喜欢的风格.所以我的问题是,有没有办法从包含在工厂类中的类继承?它看起来像这样: …
How do I open a DTSX file for editing using Visual Studio 2019?
I have generated a DTSX file by using the Import Data wizard found in SQL Server Management Studio, using the same process outlined in this question. The answer to that question explains how to edit a .dtsx file, but it does not appear to be correct anymore. I am using Visual Studio 2019. The answer says I need to use this link to download SQL Server …
我正在使用CSS导入字体.但是,它似乎在IE中不起作用.我不知道为什么.
这是我的CSS代码:
@font-face {
font-family: 'bello';
src: url('../fonts/bello.eot?');
src: url('../fonts/bello.eot?#iefix') format('embedded-opentype'),
url('../fonts/bello.woff') format('woff'),
url('../fonts/bello.ttf') format('truetype'),
url('../fonts/bello.svg#bello') format('svg');
font-weight: normal;
font-style: normal;
}
.bello {
font-family: "bello", Verdana, Tahoma;
}
Run Code Online (Sandbox Code Playgroud)
我已将.eot,.svg,.woff,.ttf和.otf添加到文件夹字体中.它在IE以外的所有浏览器中都能正确显示 要创建.eot文件,我使用了这个站点:http://www.kirsle.net/wizards/ttf2eot.cgi .
我不知道为什么它不起作用.任何帮助都会很棒.谢谢!
我们的应用程序配置为使用表单身份验证,并且在大多数计算机上它运行良好.但是,我在我们的一个开发人员工作站上遇到了开发环境问题.当我转到应用程序的其中一个URL时,如下所示:
IIS提示我输入密码,如下所示:

(该名称iweb.local在hosts文件中设置为指向127.0.0.1.本质上它是localhost的别名.我们将IIS站点配置为使用主机头,以便将来可能支持多个应用程序.)
如果我访问应用程序中的大多数其他URL,例如http://iweb.local/,则不会提示我输入密码.并且在任何其他开发人员计算机上使用完全相同的代码库时,我都不会被提示输入密码.只有这台机器才有问题.这使我有理由相信这不是编码的问题.
我尝试过的事情:
~/Areas/Reports到~/Areas/ReportsTest,并加载http://iweb.local/reportstest/.这样可行; 浏览器不再提示输入用户名和密码.但是,更改URL不是我们的应用程序的选项.http://iweb.local),但它不会记录任何提示用户输入密码的请求.http://iweb.local/reports有两个选项WWW-Authenticate:Negotiate和NTLM.由此,我确认IIS正在指示浏览器提示输入密码.但我并不接近理解为什么.http://iweb.local或http://iweb.local/reports/进行响应请求.两者都没有,确认是IIS正在处理请求.我没有想法.我在这个未配置与其他开发人员框相同的开发人员框中找不到任何内容.
那么:有没有人知道如何启用更深层次的日志记录或跟踪来找出IIS为什么要求输入密码?任何人都可以想到任何可能造成这种情况的事情,我还没有找到过吗?
这是在64位环境中在IIS 7.5上运行的ASP.NET MVC 3应用程序.reportsURL 的一部分配置为MVC区域.
UPDATE
在我的Web.config文件中,这是在违规机器上设置身份验证模式的方式.
<authentication mode="Forms">
<forms loginUrl="~/account/login" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
<authentication>"报告"区域的Web.config文件中没有元素.
我正在解决ASP.NET应用程序中的重新启动问题.该应用程序每天重启大约20次.我们强烈怀疑应用程序的一部分,因为重新启动是在此特定功能投入生产时开始的.我使用log4net库为这些页面添加了一些日志记录,但是我在解释日志时遇到了问题.
当ASP.NET应用程序在应用程序池中运行时,是仅运行该应用程序的单个实例,还是运行该应用程序的多个实例?我知道会产生几个工作进程线程.工作进程线程与应用程序池中运行的应用程序的关系是什么?
我想如果有多个应用程序记录到同一个日志,我可能无法正确解释结果.如果一个重新启动但另一个没有重启,那么日志并没有真正告诉我很多关于重启发生时发生的事情.
更新1
查看此页面,我找到以下信息:
应用程序池定义一组一个或多个工作进程,这些进程配置有通用设置,这些设置为分配给该应用程序池的一个或多个应用程序提供请求.由于应用程序池允许一组Web应用程序共享一个或多个类似配置的工作进程,因此它们提供了一种将一组Web应用程序与服务器计算机上的其他Web应用程序隔离的便捷方法.流程边界将每个工作流程分开; 因此,一个应用程序池中的应用程序问题不会影响其他应用程序池中的Web站点或应用程序.
但我仍然感到困惑.我从经验中知道,我可以分配两个完全不同的应用程序来使用相同的应用程序池.这是否意味着将产生两个工作进程?或者可以为第一个应用程序生成多个工作进程,并为第二个应用程序生成多个工作进程?如果在一个工作进程中发生问题,是否可以删除该应用程序池中运行的每个应用程序?
更新2
从这个关于使用WinDbg的页面,我发现了这个信息(强调我的):
在IIS 5.x中,只有一个Aspnet_wp.exe工作进程和一个调试器线程.因此,一次只能将一个调试器附加到Aspnet_wp.exe进程.如果您在同一台计算机上处理多个Web应用程序,则可能会出现问题.在IIS 6.0中,您可以强制AppDomain在单独的应用程序池中运行.(有关详细信息,请参阅第1章中的"IIS 5.x过程模型"和"IIS 6.0过程模型".)单独的应用程序池提供多个W3wp.exe进程.在这些进程中创建了多个调试器线程(每个进程一个),使您可以更有效地进行调试.
这听起来像每个App Pool都有一个w3wp.exe进程.我能解释那个吗?如果是这样,这仍然适用于IIS 7.5吗?
我目前正在开发一个应用程序,其初始目标是实时获取Kinect设备"看到"的环境的3D模型.此信息稍后将用于投影映射,但目前这不是问题.
需要克服几个挑战,即Kinect将安装在移动平台(机器人)上,并且模型生成必须是实时的(或接近它).
经过对该主题的长期研究,我想出了几种可能的(?)架构:
1)使用从Kinect获得的深度数据,将其转换为点云(使用PCL执行此步骤),然后将其转换为网格,然后将其导出到Unity中以进行进一步的工作.
2)使用从Kinect获得的深度数据,将其转换为点云(使用PCL执行此步骤),将其导出到Unity中,然后将其转换为网格.
3)使用已经可以选择创建Mesh模型的KinectFusion,并(以某种方式)自动加载创建到Unity中的Mesh模型.
4)使用OpenNI + ZDK(+包装器)获取深度图并使用Unity生成网格.
老实说,我有点迷失在这里,我的主要问题是实时要求以及被迫集成几个软件组件使这成为棘手的问题.我不知道这些解决方案中是否存在哪些解决方案是可行的,并且关于这些问题的信息/教程并不完全丰富,例如,对于Skeleton跟踪.
任何形式的帮助将不胜感激.
此致,努诺
更新:这不是要让它编译.问题是,为什么C#编译器在使用接口时允许转换,但是当我使用实现相同接口的类时,它无法弄清楚类型.
我收到以下错误:
Cannot convert type 'Amber.BLL.iWeb.Session.AppSession' to 'TService'
Run Code Online (Sandbox Code Playgroud)
这是代码:
public override TService GetService<TService>()
{
if ( typeof( TService ) == typeof( IAppSession ) )
{
AppSession session = new AppSession();
return (TService) session;
}
throw new Exception( String.Format(
"iWebFactoryProvider cannot create services of type '{0}'.",
typeof( TService ).Name ) );
}
Run Code Online (Sandbox Code Playgroud)
实际上,AppSession该类实现了IAppSession接口.如果我更改实例化的代码行AppSession以使用该接口,如下所示:
IAppSession session = new AppSession();
Run Code Online (Sandbox Code Playgroud)
突然间,一切都很好.我还注意到,如果我这样做,它编译得很好:
AppSession session = new AppSession();
return (TService) (IAppSession) session;
Run Code Online (Sandbox Code Playgroud)
如果重要,GetService()将覆盖一个方法,其签名声明如下:
public virtual TService GetService<TService>() where TService …Run Code Online (Sandbox Code Playgroud) 我正在使用EPPLus打开Excel Spreadsheets并尝试从命名范围读取.命名范围为空.
我使用这个错误,还是EPPlus的问题
码
var package = new ExcelPackage();
using (var stream = File.OpenRead(tmpExcel))
{
package.Load(stream);
}
var worksheet = package.Workbook.Worksheets["Common-Lookup"];
using (ExcelNamedRange namedRange = worksheet.Names["LupVerticalSettings"])
{
for (var row = namedRange.Start.Row; row <= namedRange.End.Row; row++)
{
for (var col = namedRange.Start.Column; col <= namedRange.End.Column; col++)
{
_.Nv(worksheet.Cells[row, col].Address, worksheet.Cells[row, col].Text);
//worksheet.Cells[rowIndex, columnIndex].Value = "no more hair pulling";
}
}
}
Run Code Online (Sandbox Code Playgroud)
Excel看起来像这样

空命名范围
