我看到很多人都会遇到这个错误,但他们的情况都与我的情况有所不同.
我有一个在Windows 2003 Server上的IIS 6.0中运行的ASP.NET 4.0 Web应用程序.
当我远程访问Web服务器框并在那里登录并以localhost而不是机器名称访问该站点时,Web应用程序正常工作.但是,当我从另一台客户端计算机访问该网站时,我收到以下错误:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
Run Code Online (Sandbox Code Playgroud)
该网站启用了匿名访问,打开了Windows身份验证.该Web应用程序包含以下内容:
<authentication mode="Windows"> </authentication>
<identity impersonate="true"/>
<connectionStrings>
<add name="MyConnection" connectionString="Data Source=MyDbServer;Initial Catalog=MyDatabase;Integrated Security=True"
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我的Web服务器正在虚拟服务器上运行.这有关系吗?我假设没有.
请注意,如果我在Impersonation = TRUE后在Web配置中添加了我的域\登录名和密码,则该站点可以正常工作.
看起来像使用动态SQL通过EXECUTE字符串方法创建的#temptables具有不同的范围,并且不能被同一存储过程中的"固定"SQL引用.但是,我可以在子序列动态SQL中引用由动态SQL语句创建的临时表,但似乎存储过程不会将查询结果返回给调用客户端,除非修复了SQL.
一个简单的2表场景:我有2个表.我们称之为订单和物品.Order具有OrderId的主键,而Items具有ItemId的主键.Items.OrderId是标识父订单的外键.订单可以包含1到n个项目.
我希望能够为用户提供一个非常灵活的"查询构建器"类型界面,以允许用户选择他想要查看的项目.过滤条件可以基于Items表和/或父Order表中的字段.如果一个项满足过滤条件包括和父条件中的条件(如果存在),那么该项应该在查询中返回以及父订单.
通常,我想,大多数人会在Item表和父Order表之间构造一个连接.我想改为执行2个单独的查询.一个返回所有符合条件的项目,另一个返回所有不同的父订单.原因有两个,你可能会也可能不会同意.
第一个原因是我需要查询父Order表中的所有列,如果我执行单个查询将Orders表连接到Items表,我将多次重新发布Order信息.由于每个订单通常有大量商品,我想避免这种情况,因为这会导致更多的数据被转移到胖客户端.相反,如上所述,我想在数据集中单独返回两个表,并使用其中的两个表来填充自定义Order和子Items客户端对象.(我对LINQ或Entity Framework还不够了解.我手工构建了我的对象).
我希望做的是这样的:
在客户端上构造一个动态SQL字符串,它将orders表连接到Items表,并根据在Winform胖客户端应用程序上创建的自定义过滤器指定的每个表上的过滤器.客户端上的SQL构建看起来像这样:
TempSQL = "
INSERT INTO #ItemsToQuery
OrderId, ItemsId
FROM
Orders, Items
WHERE
Orders.OrderID = Items.OrderId AND
/* Some unpredictable Order filters go here */
AND
/* Some unpredictable Items filters go here */
"
Run Code Online (Sandbox Code Playgroud)
然后,我会调用一个存储过程,
CREATE PROCEDURE GetItemsAndOrders(@tempSql as text)
Execute (@tempSQL) --to create the #ItemsToQuery table
SELECT * FROM Items WHERE Items.ItemId IN (SELECT ItemId FROM #ItemsToQuery)
SELECT * FROM Orders WHERE Orders.OrderId IN (SELECT DISTINCT OrderId FROM #ItemsToQuery)
Run Code Online (Sandbox Code Playgroud)
这种方法的问题在于,#ItemsToQuery表由于它是由动态SQL创建的,因此无法从以下2个静态SQL中访问,如果我将静态SQL更改为动态,则不会将结果传递回胖客户端.
我想到了一个更好的一个: …
好的......我有第一个使用Scripting对象的SSIS包.我单击了Script按钮并在Visual Studio for Applications IDE中编写了一个过程.
现在我想在另一个包中重用这个代码.
避免Control + C,Control V的最佳做法是什么?
为什么?
我希望只打开项目.
我能完成我想要做的唯一方法是创建一个新项目test.csproj,添加design.csproj,保存解决方案,然后删除test.csproj.
我刚刚搞砸了很多丑陋的东西后重新安装了IIS7.5.我承认我不知道自己在做什么.
我终于能够重命名我的windows\system32\inetsrv文件夹,这样当我重新安装IIS时,我会得到默认设置.
我疯狂地猜测运行它,它让我的网站运行:aspnet_regiis.exe -i
现在我无法从Visual Studio发布到wwwroot下的任何站点.
例如,我得到的错误:无法创建Web站点位置"C:\的Inetpub\wwwroot的\ WebApplication5".访问被拒绝.
我的工作是在其他地方发布,然后在那里复制代码 - 这是有效的.
善良知道我在这个过程中还有什么破坏,但我的网站似乎工作,除了因为访问被拒绝错误我无法使用VS2010中的发布功能.
我是否必须为此文件夹授予一些内置用户权限的ASPNET?
这是我的wwwroot文件夹上权限的快照:

我有一个包含Process Task的SSIS包.流程任务需要执行批处理文件.批处理文件的位置因环境(开发,生产)而异.
如何动态设置Process Task对象的Executable属性值为用户变量?


据我了解,分配给db_datareader角色的用户有权读取数据库中的所有表,而分配给db_datawriter的用户可以更新所有表.
是否有数据库角色为用户提供执行所有存储过程的权限?
当我打开Data Source Explorer窗口并尝试创建新的连接配置文件时,我选择"Oracle",Oracle Thin Driver,然后将其指向我PC上的以下JAR文件:
C:\oracle_12101_64bit\product\12101_64bit\CLIENT_1\jdbc\lib\ojdbc7.jar
Run Code Online (Sandbox Code Playgroud)
提供连接参数后,它使用以下格式导出以下格式的连接URL
jdbc:oracle:thin:@host:PORT:SID
Run Code Online (Sandbox Code Playgroud)
但是,我想要它得出的是(注意冒号而不是正斜杠)
jdbc:oracle:thin:@host:PORT/SID
Run Code Online (Sandbox Code Playgroud)
我似乎能够使用生成的URL连接到11g数据库,但是,不是12c,我不知道这是巧合还是我有不同的问题.
在我的程序中,我使用JPA,它从我的配置文件中以所需的正斜杠格式读取连接URL,并且程序能够连接,如果我更改url使用冒号而连接失败.
如果我无法控制派生连接URL以生成带斜杠而不是冒号的URL,如何在Eclipse的Data Source Explorer视图中创建连接配置文件?我得到的错误是:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
Run Code Online (Sandbox Code Playgroud)
更新1
我注意到的一件事是,即使我关联了Oracle 12c附带的jdbc7.jar文件,驱动程序仍然显示为"Oracle 11".

更新2:
以下是我的tnsnames.ora文件中的示例:
AFDEDEV.MYCO.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = servername.sys.MYCO.com)(PORT = 2))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = afdedev.MYCO.com)
)
)
Run Code Online (Sandbox Code Playgroud)

看起来连接字符串构建器只需要一个SID.我的SID是什么,或者我怎么知道?我试过了AFDEDEV和AFDEDEV.MYCO.COM.在11g确实有效的情况下,我使用了相当于AFDEDEV的东西.对不起,我真的不太了解SID与服务名称.是否有我可以对数据库执行的查询告诉我SID?
请参阅提出问题的主题.
1)我记得在VB.NET中看到一个非常酷的选项,使用LINQ匹配使用"LIKE%"
2)我知道正则表达式将起作用,我怀疑这将导致最短的代码,并且可能不会太难以阅读这么简单的测试.
这就是我做的.警告:你会讨厌的.
Private Shared Function FileNameIsOk(ByVal fileName As String) As Boolean
For Position As Integer = 0 To fileName.Length - 1
Dim Character As String = fileName.Substring(Position, 1).ToUpper
Dim AsciiCharacter As Integer = Asc(Character)
Select Case True
Case Character = "_" 'allow _
Case Character = "." 'allow .
Case AsciiCharacter >= Asc("A") And AsciiCharacter <= Asc("A") 'Allow alphas
Case AsciiCharacter >= Asc("0") AndAlso AsciiCharacter <= Asc("9") 'allow digits
Case Else 'otherwise, invalid character
Return False
End Select …Run Code Online (Sandbox Code Playgroud) 如果我知道列的值应始终在smallint数据类型允许的范围内,从数据完整性维护的角度来看,似乎我应该将数据存储在smallint列而不是int列中.
但是我想知道是否可以通过使用更少的字节来支付任何性能命中?
ssis ×2
t-sql ×2
.net ×1
bids ×1
dynamic-sql ×1
eclipse ×1
iis-6 ×1
iis-7.5 ×1
java ×1
jpa ×1
oracle ×1
sql-server ×1
temp-tables ×1
vb.net ×1