我注意到当我启动 Visual Studio 2019 时,我无法创建 XUnit 或 NUnit(仅限 MSTests)的 .NET Framework 版本。我们被要求使用 XUnit 测试,但我们的解决方案全是 .NET Framework。一些 nuget 包依赖于 .NET Framework(对于 Sitecore 8.2),因此我无法将它们添加到 .NET Core 项目中。我目前无法将任何旧项目升级到 .NET Core 或 Sitecore 9+。
如何添加 .NET Framework XUnit 项目?我的 Visual Studio 设置有问题吗?不支持吗?我一直无法从 Microsoft 找到有关此的文档。谢谢。
我们的团队刚刚将我们的 ASP.NET 解决方案之一从 log4net 登录转移到 Serilog(使用 iLogger)进行日志记录。我们的解决方案是.NET Framework 4.6。我可以在线查看 Serilog 配置文档,用于在代码中设置配置以及 appsettings.json 中的一些文档。我们有Web.config配置文件。我们旧的 log4net 配置完全驻留在 csproj 文件中。
.NET Framework 中是否有配置 Serilog 及其接收器的位置(特别是在 Web.config 或其自己的 XML 配置文件中)?我们是否必须将配置放入代码中(当我们创建记录器对象时)?我们可以指定我们拥有的特定控制器和型号的配置吗?如果可以,哪里有文档?我知道我们可以为 log4net 中的特定组或控制器和模型指定位置、日志级别等,但不确定如何为 Serilog 执行此操作。如果您有任何此内容的链接,请为我指出正确的方向。谢谢。
我们将软件托管在 Azure DevOps 上的 Git 中,并使用构建管道(主要使用 Cake 脚本)构建。我们现在希望使用 Azure DevOps 发布管道来部署此软件。但是,我们所有的应用程序服务器都在我们的防火墙后面,在我们的网络内部,除了用于 Web 应用程序的 80 和 443 之外,没有任何端口打开。我们为我们的应用程序(包括一些用于负载平衡)提供开发、暂存和生产服务器。我真正需要的是复制工件,将当前代码备份到服务器上的一个单独文件夹,在根部署文件夹中部署和解压缩工件文件,然后在这些服务器上重新启动 IIS。
我的公司相当大而且官僚主义,所以在我们尝试这个新流程之前,我们必须跳过一些障碍进行尽职调查。本着这种精神,我正在努力寻找最佳解决方案。如果您可以提供您的建议,特别是提供我们没有想到的任何其他解决方案,那将很有帮助:
如果您对此问题有更好的解决方案或更常见的解决方案,请告诉我。如果您认为我应该使用上述 4 个解决方案之一,请告诉我。如果您可以扩展上述任何选项,请执行。
我正在使用 Cake 脚本通过持续集成在 Azure DevOps 中构建我的软件。要求是当我们提交/合并到 dev 或 master 分支时,适当的构建管道被启动。作为此构建的一部分,我们需要自动标记和版本我们的软件。我的蛋糕脚本中已经有以下代码可以使用 GitVersion 将语义版本控制添加到我的构建中:
Task("Version")
.Does(() =>
{
Information("Versioning software for configuration {0} of {1}...", configuration, solution);
GitVersion(new GitVersionSettings {
UpdateAssemblyInfo = true,
OutputType = GitVersionOutput.BuildServer,
WorkingDirectory = toolsDirectory
});
GitVersion versionInfo = GitVersion(new GitVersionSettings{ OutputType = GitVersionOutput.Json });
Information("Semantic Version: " + versionInfo.AssemblySemVer);
Information("Full Semantic Version: " + versionInfo.AssemblySemFileVer);
Information("Informational Version: " + versionInfo.InformationalVersion);
});
Run Code Online (Sandbox Code Playgroud)
我希望团队负责人或权威人士在此代码与分支合并之前增加主要和次要构建版本。或者我希望管道自动对软件和我们在构建管道末尾创建的最终 zip 工件进行版本控制。
所以这里是我的问题:
这有点宽泛,但我正在努力寻找在 …
我正在安装 Sitecore 8.2 解决方案并设置环境。我使用的是 TDS Hedgehog 5.8.0.6。我遇到了一个我的同事都没有遇到过的奇怪错误:当我尝试将内容项目与 Sitecore 同步时(通过上下文单击内容项目中的菜单项“与 Sitecore 同步项目”),我在 Visual Studio 2019 中收到一个弹出窗口仅包含标题栏、关闭、展开和停靠按钮以及空框架。无论我将其打开多久,窗口中都不会显示任何内容。
我已重新启动计算机、重新启动 Visual Studio、重新安装 TDS 扩展、已构建项目(我们对解决方案和要构建的特定项目有特定的顺序),并通过“属性”窗口的“构建”选项卡测试了 TDS 连接的项目。所有项目都这样做。我确实安装了 Sitecore 8.2 和 Visual Studio Professional 2019 的 TDS。输出窗口中没有日志,错误窗口中没有错误或警告。
有其他人在 Visual Studio 中看到过这个吗?有人有解决办法吗?
编辑:如果这有帮助的话,我在 ActivityLog.Setup.xml 中发现了一些警告。
<entry>
<record>42</record>
<time>2019/10/10 00:17:05.020</time>
<type>Warning</type>
<source>VisualStudio</source>
<description>PkgDef encountered data collision in section 'HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\16.0_bc996d64_Config_15432\ToolsOptionsPages\TDS Options' for value ''</description>
</entry>
<entry>
<record>43</record>
<time>2019/10/10 00:17:05.021</time>
<type>Warning</type>
<source>VisualStudio</source>
<description>PkgDef encountered data collision in section 'HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\16.0_bc996d64_Config_15432\ToolsOptionsPages\TDS Options' for value 'Package'</description>
</entry>
<entry>
<record>44</record>
<time>2019/10/10 00:17:05.022</time>
<type>Warning</type>
<source>VisualStudio</source> …
Run Code Online (Sandbox Code Playgroud) 我们正在将日志记录从 log4net 转移到 Serilog。我们从 log4net 登录到我们的远程 MSSQL 服务器。我们需要保持该表和列完整,因为其他团队正在使用它,但我们需要将我们的 Serilog 日志发送到其中。查看https://github.com/serilog/serilog-sinks-mssqlserver我看不到我们如何将旧列链接到日志数据。我可以在 Columns 标记中添加列并删除所有标准列,但我不知道如何将 serilog 数据记录到这些列中。
所以这是我们当前的日志表:
CREATE TABLE [dbo].[EventLog]
(
[EventID] [INT] IDENTITY(1,1) NOT NULL,
[Date] [DATETIME] NOT NULL,
[Type] [VARCHAR](10) NOT NULL,
[Logger] [VARCHAR](255) NOT NULL,
[Thread] [VARCHAR](255) NOT NULL,
[Message] [VARCHAR](MAX) NOT NULL,
[MoResponse] [VARCHAR](MAX) NULL,
[StackTrace] [VARCHAR](MAX) NULL,
[MoStatus] [VARCHAR](255) NULL,
[MoTransactionID] [VARCHAR](255) NULL,
CONSTRAINT [PK_EventLog]
PRIMARY KEY CLUSTERED ([EventID] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = …
Run Code Online (Sandbox Code Playgroud) 我正在使用一些遗留代码来修复有关登录重定向的错误。简而言之,当用户加载包含登录页面链接的页面,单击进入 SSO 登录页面的登录链接,然后登录该 SSO 页面时,他们不会被重定向到主页,而是会被重定向到主页。他们最后的页面。经过研究,以前的开发人员解决这个问题的方法是将“深层链接”保存为会话数据中的变量(其会话 ID 保存在客户端的 cookie 中和服务器的内存中)。理论上,用户登录时应该从会话数据中检索到深层链接,然后他们应该被重定向。但是,这就是发现问题的地方:第二次调用(当用户登录时)中的会话 ID 具有不同的会话 ID,因此在此会话 ID 的会话数据中找不到匹配的深层链接。
我可以证明会话 ID 已正确存储在 Chrome 和 SAML Tracer 的 cookie 中,并且 SAML 调用连续发生,中间没有发生其他调用。我没有看到会话 ID 在参数或 http 标头中传递(尽管用户登录后应访问的正确链接作为第一个 SSO 请求中的引用者传递)。
我还应该注意,我们正在使用 ComponentSpace 的 SAML 库。此外,当首次调用转到 SSO 页面时,重定向时会出现 302 Found 错误。我认为这是故意的,但我不能百分百确定。SSO 是 ADFS。
公司里已经没有人参与过这段代码的工作了,而且这个代码库和这些库对我来说都是新的。我还不确定这是否是此应用程序或我们连接到的自定义 SSO 网站的问题,我需要以某种方式证明这一点。根据 TFS,我们与此问题相关的代码在两年或更长时间内都没有发生更改。
我的问题:
以下是用户单击登录页面链接时第一次 SSO 调用的代码:
public ActionResult SingleSignOn()
{
try
{
if (!string.IsNullOrEmpty(ssoUrl))
{
_accountRespository.SetDeepLink();
var sessionId = System.Web.HttpContext.Current.Session.SessionID;
// Redirect to SSO Site. Reentry …
Run Code Online (Sandbox Code Playgroud)