小编Nat*_*mer的帖子

是否可以在.NET MySqlCommand中使用MySql用户定义变量?

我正在尝试执行当前在phpMyAdmin中运行的查询,但是在使用MySqlAdapter在.NET中执行它时它不起作用.这是Sql语句.

SELECT @rownum := @rownum +1 rownum, t . *
FROM (
  SELECT @rownum :=0
) r, (
  SELECT DISTINCT
    TYPE FROM `node`
  WHERE TYPE NOT IN ('ad', 'chatroom')
)t     
Run Code Online (Sandbox Code Playgroud)

它使用@rownum对从内部标量查询返回的每个不同行进行编号.但是如果我在.NET中使用它,它假设@rownum是一个参数并抛出异常,因为我没有定义它.

using (var sqlConnection = new MySqlConnection(SOURCE_CONNECTION))
{
    sqlConnection.Open();

    MySqlDataAdapter sqlAdapter = new MySqlDataAdapter(SqlStatement, sqlConnection);

    DataTable table = new DataTable();
    sqlAdapter.Fill(table);
    sqlConnection.Close();

    return table;
}
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?或者我可以通过哪种方式获得行号?

.net c# mysql

15
推荐指数
1
解决办法
8462
查看次数

使用TortoiseHg克隆读写github存储库

我正在尝试使用TortoiseHg的git + ssh协议在github上克隆我的个人分叉.它给了我一个相当奇怪的错误.这是命令

hg clone git+ssh://git@github.com:myusername/thefork.git
Run Code Online (Sandbox Code Playgroud)

这是在我安装了hg-git模块之后,它可以使用git://语法进行克隆.但我相信它与ssh有问题.我得到的错误就是这个.

importing Hg objects into Git
[Error 2] The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

我试过像这样手动将ssh命令添加到mercurial.ini文件中

[ui]
username = email@address.com
ssh="C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -i "C:\Source\SSHPrivateKey.ppk"
Run Code Online (Sandbox Code Playgroud)

但我仍然得到同样的错误.有任何想法吗?

更新1

如果我从Git Bash shell运行相同的命令,它可以正常工作.我明白了

importing Hg objects into Git
Counting objects: 1559, done.
Compressing objects: 100% (586/586), done.
Total 1559 (delta 960), reused 1534 (delta 947)
importing Git objects into Hg
at:  0/86
updating to branch default
219 files updated, 0 files merged, 0 files removed, 0 …
Run Code Online (Sandbox Code Playgroud)

git ssh mercurial github tortoisehg

14
推荐指数
1
解决办法
3726
查看次数

我可以在 ASP.NET MVC 站点中路由 Web 服务 (ASMX) 的 url 吗?

我已经看到如何使用这样的代码向 WebForms 添加自定义路由。

public class WebFormsRouteHandler : IRouteHandler
{
    public string VirtualPath { get; set; }

    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        // Compiles ASPX (if needed) and instantiates the web form
        return (IHttpHandler) BuildManager.CreateInstanceFromVirtualPath(VirtualPath, typeof (IHttpHandler));
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用类似的方法来工作,但对于 Web 服务文件 (TestService.asmx)。以前的方法会引发异常,因为该页面不是从 IHttpHandler 继承的。我看过其他一些使用 WebServiceHandlerFactory 这样的代码

return new WebServiceHandlerFactory().GetHandler(context, requestType, url, pathTranslated);
Run Code Online (Sandbox Code Playgroud)

这会返回一个我需要的 IHttpHandler,但它需要传入一个 HttpContext,但作为 RequestContext 的一部分,我唯一可以访问的东西是 HttpContextBase。据我所知,我无法从中转换为 HttpContext 。

有任何想法吗?或者也许是一种不同的方式来解决它?我想要完成的是通过普通路由系统控制我的 Web 服务的 url。一个例子是希望 TestService.asmx 作为 ExampleTestService/ 出现。

.net c# asp.net-mvc httphandler

5
推荐指数
1
解决办法
2106
查看次数

如何维护两个单独的项目,但将它们合并到一个DLL中?

我希望这里缺少一些简单的东西。我正在尝试维护两个单独的项目

ProjectName.Core &
ProjectName.Infrastructure
Run Code Online (Sandbox Code Playgroud)

这是在典型的Onion体系结构中完成的,因此我可以松散耦合服务并获得更大的灵活性。基础结构项目引用核心项目。编译后,它们会生成这些DLL

ProjectName.Core.dll &
ProjectName.Infrastructure.dll
Run Code Online (Sandbox Code Playgroud)

但我想让它只生成1个dll。

ProjectName.Infrastructure.dll (or even ProjectName.dll)
Run Code Online (Sandbox Code Playgroud)

我尝试使用ILMerge来执行此操作,但是由于基础结构引用了Core,因此它会引发异常,因为它找不到Core dll。很明显,它本身并不内在。

现在,我需要维护单独的项目,因为我有一些其他引用Core的组合和另一个将结合在一起的项目,例如

ProjectName.Core &
ProjectName.DataAccess &
ProjectName.Web
Run Code Online (Sandbox Code Playgroud)

编辑:我当前的解决方案使用Nant构建脚本调出ILMerge。它成功地合并在一起。但是,当我尝试使用合并的DLL时,它会引发异常,因为它找不到Core库。

  <target name="merge.core">
    <property name="temp.dir" value="${build.dir}\Temp\"/>
    <mkdir dir="${temp.dir}" if="${not directory::exists(temp.dir)}"/>
    <property name="tools.dir" value="&quot;${directory::get-current-directory()}\Tools\&quot;"/>
    <exec program="Tools\ILMerge\ILMerge.exe" workingdir=".">
      <arg value="/t:Library"/>
      <arg value="/ndebug"/>      
      <arg value="/out:&quot;${build.dir}\Temp\ProjectName.Infrastructure.dll&quot;"/>
      <arg value="&quot;${build.dir}ProjectName.Core.dll&quot;"/>
      <arg value="&quot;${build.dir}Xceed.Compression.dll&quot;"/>
      <arg value="&quot;${build.dir}ProjectName.Infrastructure.dll&quot;"/>
      <arg value="&quot;${build.dir}ProjectName.Infrastructure.XmlSerializers.dll&quot;"/>
    </exec>
    <delete file="${build.dir}ProjectName.Core.dll"/>
    <delete file="${build.dir}Xceed.Compression.dll"/>
    <delete file="${build.dir}ProjectName.Infrastructure.dll"/>
    <delete file="${build.dir}ProjectName.Infrastructure.XmlSerializers.dll"/>
    <move file="${build.dir}\Temp\ProjectName.Infrastructure.dll" tofile="${build.dir}ProjectName.Infrastructure.dll"/>
    <delete dir="${temp.dir}" if="${directory::exists(temp.dir)}"/>
  </target>
Run Code Online (Sandbox Code Playgroud)

要更清楚一点。我可以使用核心库之外的对象,但不能使用基础结构库。因为一旦它试图实例化这些对象之一,.NET似乎试图加载该依赖关系但找不到它。

.net ilmerge visual-studio

5
推荐指数
1
解决办法
772
查看次数

仅为匿名配置ASP.NET缓存?

我正在寻找一种仅为匿名用户配置缓存的方法.我希望这样做的原因是当用户登录并且他们创建内容时他们不会立即看到内容.在我们的旧系统(linux/php/mysql)中,我们将其配置为仅缓存匿名用户,这不是问题.

现在我们在web.config中有这样的缓存设置

<caching>
  <outputCacheSettings>
    <outputCacheProfiles>
      <add name="High" duration="60" varyByParam="*" enabled="true"/>
      <add name="Medium" duration="30" varyByParam="*" enabled="true"/>
      <add name="Low" duration="10" varyByParam="*" enabled="true"/>
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>
Run Code Online (Sandbox Code Playgroud)

我知道我可以添加一个varyByCustom ="userName",就像这篇文章所说的那样.但这并不能解决我的问题.它仍然缓存用户登录并存在同样的问题.

asp.net caching

5
推荐指数
1
解决办法
178
查看次数

为什么SQL Server 2008在使用GROUP BY时订购并且没有指定订单?

我遇到了一个非常奇怪的问题,我还没有找到任何解释.使用SQL Server 2008并使用GROUP BY,它会在没有指定任何ORDER BY的情况下对我的列进行排序.这是一个演示这种情况的脚本.

CREATE TABLE #Values ( FieldValue varchar(50) )

;WITH FieldValues AS
(
    SELECT '4' FieldValue UNION ALL
    SELECT '3' FieldValue UNION ALL
    SELECT '2' FieldValue UNION ALL
    SELECT '1' FieldValue
)
INSERT INTO #Values ( FieldValue )
SELECT
    FieldValue 
FROM FieldValues

-- First SELECT demonstrating they are ordered DESCENDING
SELECT
    FieldValue
FROM #Values

-- Second SELECT demonstrating they are ordered ASCENDING
SELECT
    FieldValue
FROM #Values
GROUP BY
    FieldValue

DROP TABLE #Values
Run Code Online (Sandbox Code Playgroud)

第一个SELECT将返回

4
3
2
1 …
Run Code Online (Sandbox Code Playgroud)

sql group-by sql-order-by sql-server-2008

4
推荐指数
2
解决办法
8988
查看次数

为什么现在ASP.NET Master Page上的Context.User为null?

我只是转向一个新的ASP.NET主机,它似乎表现不同.在主页面的代码中,它正在尝试为经过身份验证的用户执行一些不同的逻辑.

if (Context.User.IsAuthenticated) {
}
Run Code Online (Sandbox Code Playgroud)

但Context.User对象为null.但它在母版页上只是null.如果我在常规页面上使用它就可以了.

if (User.IsAuthenticated) {
}
Run Code Online (Sandbox Code Playgroud)

有谁知道问题可能是什么?我可能无法控制托管环境,但是我可以通过不同的方式在母版页中获取此信息吗?

其他信息:

似乎Context.User或Page.User对象在两者中都是null

  • Dashboard.aspx(用户使用主页面Page.master)和
  • Page.master

但它不是空的

  • TestUser.aspx(不使用任何母版页)

c# asp.net webforms master-pages

2
推荐指数
1
解决办法
2997
查看次数

通过互联网订阅MSMQ

我一直无法找到这个问题的明确答案.有没有通过互联网订阅MSMQ 的方法?理想情况下,我在此连接的身份验证和加密方面都需要安全性.但我希望订阅者的行为与将在本地网络上订阅的任何其他客户端一样.我相信我有几个选择

  • 公开公开MSMQ端口
  • 将MSMQ置于某种类型的WCF服务之后(不确定它是否适用于订阅者)

我还有其他选择吗?我们坐在.NET环境中,试图解决的主要问题是将远程连接从拉动系统更改为基于事件的系统,以减少主服务器上的负载.

.net c# wcf msmq servicebus

1
推荐指数
1
解决办法
1888
查看次数