一年多以前,我在Windows服务的支持下编写了一个运行在Windows 2003 Server上的WCF服务(我也写过).(我是用VS 2008写的.)我没有机会继续使用它很长一段时间,但是现在想要回到我当时离开的地方.但是,现在我正在尝试使用VS 2010,看看我是否可以与它进行交互.
我做的第一件事是从命令行运行SvcUtil,以获取我需要放入App.Config文件的信息.但是,它给了我一个错误(#415),说服务器拒绝了网络请求.我一直在询问如何解决这个问题,并被告知我应该在服务器上运行SvcConfigEditor.exe以获得更好的日志记录信息.所以我RDP到服务器上并尝试运行它.只是,它没有安装在服务器上.安装了.NET Framework 2和3.5,但如果我尝试从.NET 3.5运行SvcConfigEditor.exe,我认为如果在服务器上安装.NET 4则不重要.
底线:如何将SvcConfigEditor.exe导入服务器?
我正在尝试将ASP.NET 2.0应用程序(WebForms)迁移到ASP.NET 3.5.我终于修复了我遇到的500.19 IIS 7.5错误.现在它将运行,只要我不尝试调试它.如果我尝试调试它,我会收到一条错误消息.我已经在这个错误上搜索了一些帮助,那里的内容很少.这是错误消息的文本:
"无法在Web服务器上启动调试.检查以下之一.
请参阅Visual Studio .NET调试器文档,以正确指定应用程序将用于调试的Microsoft .NET Framework版本."
好吧,据我所知,我正在为这个应用程序使用正确版本的.NET Framework(3.5).虽然我对Windows 7上的IIS 7.5并不熟悉.无论如何,我可以使用有关此错误的帮助.
一年多以前,我一直致力于使用VS 2008编写的WCF服务.它在Windows服务下运行,我也写过.从那时起它一直在那里运行.不幸的是,其他项目/优先事项已经出现,阻止我继续这个项目,直到现在.
现在我想回到它.但是,我试图找出是否可以使用VS 2010和.NET 4而不是.NET 3.5.我已经启动了命令提示符,运行SvcUtil,以获取wsdl信息,我将把它放入配置文件中,用于我正在尝试开始编写的新WPF应用程序.唯一的问题是,我一直收到错误,说我无法到达服务器等.
所以,我将.exe.config文件从服务器复制到我的机器,在那里我可以用SvcConfigEditor编辑它.我已经做了这些更改,把它放回到服务器上,并在尝试运行SvcUtil时出错,但比我更糟糕的是我没有看到我希望看到的.svclog文件.所以我进入了服务器的服务应用程序.我找到了一年前写的Windows服务; 看到它正在运行,并停止并再次启动它.
现在我有一个不同的问题.我的Windows服务启动,但随后立即停止.我收到此消息说该服务已启动然后停止,并说有时会发生不同类型的服务,如性能日志和警报服务.我检查了服务器上的事件日志,然后只有与此Windows服务相关的事情是它进入启动状态然后进入停止状态.
啊,在尝试启动它4次后,它最终在事件日志中给了我一个错误!(为什么不首先做到这一点?谁说试图一遍又一遍地做同样的事情,并期待不同的结果是疯狂的迹象,显然前3次它没有注册任何东西在事件日志中,但在第4次尝试它.)
这是错误:
事件类型:错误事件源:Service1事件类别:无事件ID:0日期:2011年5月4日时间:10:14:46 AM用户:N/A计算机:HELIOS描述:服务无法启动.System.TypeInitializationException:'System.ServiceModel.DiagnosticUtility'的类型初始值设定项引发了异常.---> System.Configuration.ConfigurationErrorsException:找不到类System.Diagnostics.XmlWriterTraceListener,System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089的类型.at System.Diagnostics.TraceUtils.GetRuntimeObject(String className,Type baseType,String initializeData)
这是SvcConfigEditor放入.config文件的新代码段:
<sharedListeners>
<add initializeData="C:\Program Files\ASIWindowsService\ASIWindowsService_tracelog.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
<add initializeData="C:\Program Files\ASIWindowsService\ASIWindowsService_messages.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
Run Code Online (Sandbox Code Playgroud) 我正在帮助一位无法在我们的 TFS 2015 构建服务器中构建 Visual Studio WPF 项目的同事。我已将他的代码的最新版本拉入(获取最新版本)到我的 VS 2019 实例中。我无法在我的开发盒上构建它。当我尝试在我的开发盒上构建解决方案时,我收到如下错误:
XML 命名空间“http://firstfloorsoftware.com/ModernUI”中不存在标签“ModernDialog”。XML 命名空间“http://schemas.microsoft.com/expression/2010/interactivity”中不存在标签“Interaction.Triggers”。
当我的同事将更改签入 TFS 时,它失败并出现如下错误:
无法找到包“MvvmLightLibs”的版本“5.2.0”。无法找到包“ModernUI.WPF”的版本“1.0.9”。
我首先尝试更新他在项目中拥有的 NuGet 包,但效果不佳。即使恢复到最新版本也无法在我的机器上构建。
我同事的方法是从 Visual Studio 解决方案中剥离所有 NuGet 包,然后四处寻找 DLL,然后将它们放入项目中并在项目中引用它们。它确实在他的系统上构建,但不在 TFS 构建服务器上。
所以,我一直在寻找可能的原因。我发现了这个 Microsoft 文档Migrate from packages.config to PackageReference。我对packages.config 或PackageReference 都不熟悉,但我感觉PackageReference 是包含NuGet 包的“首选”方式。
这会产生问题。目前我们的TFS构建服务器的Visual Studio最高版本是VS 2015。根据引用的文章,VS 2015使用packages.config文件。任何比 VS 2015 更新的东西都使用包(我认为是 PackageReference)。
我将失败的 WPF 解决方案与我开发的另一个在构建服务器上构建良好的解决方案进行了比较。构建的解决方案(我将其称为 SolutionA)在解决方案的根目录下有一个 packages 文件夹,但解决方案中的每个项目中也有packages.config 文件。无法构建的解决方案(我将其称为 SolutionB)在其根目录下有一个 packages 文件夹,在单元测试项目中有一个packages.config 文件。(我认为单元项目构建得很好。)
尽管我们使用的是较新版本的 Visual Studio,但我怀疑生成服务器遇到的问题是由于生成服务器具有旧版本的 Visual Studio 造成的。我们的 Visual Studio 许可证数量有限,因此我无法将较新版本的 Visual Studio 放在生成服务器上。那么,如何将这些packages.config 文件放入每个项目中呢?
我有一个SQL Server数据库,里面有一个表,列出了图像的文件名.我打算从表格中的数据中为页面上的Image控件分配ImageUrl.我在页面上放置了一个SQLDataSource控件,然后尝试在其中放置一个FormView控件,并在其中放置一个Image控件.但我不知道如何通过数据绑定将值赋给ImageUrl属性.
我决定尝试为VB6提供Service Pack 6,尝试使用我们的遗留应用程序.我希望它能让旧的应用程序更好地运行,减少崩溃,这样我们就可以继续将这个应用程序迁移到.NET.无论如何,这个VB6应用程序有我们编写的十几个DLL,都在VB6中,并且全部用SP5编译.我是否必须将VB6 SP6应用于所有DLL项目以及主VB6 Windows应用程序?
几年前,我写了一个WCF服务,它运行在IIS下的Windows 2003服务器上.我用VS 2008和.NET 3.5编写了它.有问题的代码是这样的:
public static List<ASILookupTables> GetLookupTableAux(bool UseProduction)
{
ASIClassesDataContext dcASI = new ASIClassesDataContext();
var result = from lookups in dcASI.ASILookupTables4s
orderby lookups.SortOrder
select lookups;
List<ASILookupTables> list = new List<ASILookupTables>();
foreach (var item in result)
{
ASILookupTables alt = new ASILookupTables();
//more lines to add other elements
list.Add(alt);
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
现在我正在编写一个使用.NET 4.0的VS 2010应用程序来使用它.VS 2010应用程序中的代码片段如下:
LookupSvc.LookupsClient proxy = new LookupSvc.LookupsClient();
//retrieve list of lookup tables
List<LookupSvc.ASILookupTables> lookupTables = proxy.GetLookupTableAux(true);
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
"无法将类型'AsiEF.LookupSvc.ASILookupTables []'隐式转换为'System.Collections.Generic.List'"
我不明白; 在WCF代码中它看起来像我正在返回一个列表.它看起来不像我正在返回一个数组.是因为WCF服务是在.NET 3.5中而我的新项目是在.NET 4.0中吗?
我发现如果我从网站上复制C#代码并将其粘贴到Notepad ++中,它看起来很难看.基本上它都在一条线上.是否有某个网站,或Notepad ++的加载项,将采取类似1长串的C#代码,然后正确缩进代码?
我正在使用WCF服务,在该服务中,我尝试将传递给该方法的一个数据表中的数据加载到本地数据库中的另一个数据表中(在这种情况下,“本地”数据库是SQL Server数据库)在Windows 2003 Server上)。当我这样做时,会收到以下错误消息:
“表'ASIVocationalNeeds'中'VocNeedDesc'列的值为DBNull。”
这实际上是可以的,因为表ASIVocationalNeeds中的VocNeedDesc列允许为空。最初,我只是将传递的表中的VocNeedDesc的值分配给了本地表,但是遇到了这个错误。因此,接下来我更改代码以检查VocNeedDesc的值是否为空,如果是,我将string.Empty分配给该值,否则我分配了传递的值,但仍然收到错误消息。我很沮丧 不知道为什么我会收到此错误。这是相关的代码段:
localEmploy.ASIVocationalNeeds.Rows.Add(clientNumber,
caseNumber,
0,
EmploymentDataSet.ASIVocationalNeeds[i].VocNeedType,
(EmploymentDataSet.ASIVocationalNeeds[i].VocNeedDesc == null ? string.Empty : EmploymentDataSet.ASIVocationalNeeds[i].VocNeedDesc));
Run Code Online (Sandbox Code Playgroud) 我正在研究我的第一个使用实体框架的应用程序.我有一个简单的WPF应用程序,它是基于页面的.我在页面的类级别定义了EF上下文,并在页面的load事件中实例化它.然后基本上我只是把它留在那里,使用它作为用户做出各种选择等等.然而,多年的编程经验使我认为我不应该只是打开这个上下文.每当我需要将它用于某些东西时,我是否应该新建它,或者它不重要?
我正在使用VS 2010,.NET 4.0.