我经常看到Overflow与vba错误有关的问题.
我的问题是为什么使用integer变量声明而不是仅仅定义所有数值变量(不包括double等)long?
除非您正在执行类似for循环的操作,您可以保证该值不会超过32,767的限制,否则是否会对性能产生影响或其他会导致不使用long?
我有两个清单:
List<int> data1 = new List<int> {1,2,3,4,5};
List<string> data2 = new List<string>{"6","3"};
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情
var newData = data1.intersect(data2, lambda expression);
Run Code Online (Sandbox Code Playgroud)
如果,lambda表达式应该返回true data1[index].ToString() == data2[index]
我的计算机位于域(Active Directory)中,我需要动态获取域名.我在互联网上找到了以下代码:
SelectQuery query = new SelectQuery("Win32_ComputerSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
{
foreach (ManagementObject mo in searcher.Get())
{
if ((bool)mo["partofdomain"])
{
this.Domain = mo["domain"].ToString();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
它完全按照我的意愿工作,并返回我想要的域名(当我以管理员身份登录时).如果用户不是域管理员,我有一个Access denied例外.
有没有人知道如何使用非域管理员用户获取域名?
注意:我在Internet上找到了这个解决方案,System.Environment.UserDomainName;但它只给了我一部分域名.
即我的域名是:something.domain.com
和UserDomainName唯一的回报something.
我们很难确定这些凭证对象的工作方式.事实上,他们可能无法按照我们期望的方式工作.这是对当前问题的解释.
我们有2台服务器需要通过webservices相互通信.第一个(让我们称之为Server01)有一个Windows服务作为NetworkService帐户运行.另一个Server02具有与IIS 6.0一起运行的ReportingServices.Windows Service on Server01正在尝试使用Server02ReportingServices WebService生成报告并通过电子邮件发送它们.
所以,这是我们到目前为止所做的尝试.
在运行时设置凭据(这完全正常):
rs.Credentials = new NetworkCredentials("user", "pass", "domain");
Run Code Online (Sandbox Code Playgroud)
现在,如果我们可以使用通用用户一切都没问题,但是......我们不被允许.因此,我们尝试使用DefaultCredetials或DefaultNetworkCredentials并将其传递给RS Webservice:
rs.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials
Run Code Online (Sandbox Code Playgroud)
要么:
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Run Code Online (Sandbox Code Playgroud)
无论哪种方式都行不通.我们总是从IIS获得401 Unauthrorized.现在,我们知道如果我们想要访问记录为NetworkService的资源,我们需要将其授予DOMAIN\MachineName$(http://msdn.microsoft.com/en-us/library/ms998320.aspx):
授予对远程SQL Server的访问权限
如果要访问同一域(或受信任域)中的另一台服务器上的数据库,则使用网络服务帐户的网络凭据对数据库进行身份验证.网络服务帐户的凭据的格式为DomainName\AspNetServer $,其中DomainName是ASP.NET服务器的域,AspNetServer是您的Web服务器名称.
例如,如果ASP.NET应用程序在域CONTOSO中名为SVR1的服务器上运行,则SQL Server将看到CONTOSO\SVR1 $的数据库访问请求.
我们假设以相同的方式授予IIS访问权限.但事实并非如此.或者至少,没有正确设置某些内容以使其正确进行身份验证.
所以,这里有一些问题:
我们在某个地方读过"模仿用户",我们是否需要在Windows服务中的某处设置?
是否可以将对NetworkService内置帐户的访问权限授予远程IIS服务器?
谢谢阅读!
web-services credentials defaultnetworkcredentials reporting-services
我尝试使用WebRequest类连接到托管在不同服务器上的Web服务.Web服务返回一个字符串作为响应.这样做我得到一个错误:
"System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它"
System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接,因为目标计算机在System.Net.Sockets.Socket上主动拒绝它127.0.0.1:14012 System.Net.ServicePoint.ConnectSocketInternal上的.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress)(布尔值connectFailure,套接字s4,套接字s6,套接字和套接字,IP地址和地址,ConnectSocketState状态,IAsyncResult asyncResult,异常和异常)---内部异常堆栈结束跟踪---在System.Net.HttpWebRequest.GetRequestStream(TransportContext&context)at System.Net.HttpWebRequest.GetRequestStream()at Limoallover.InsertSoapEnvelopeIntoWebRequestUS(XmlDocument soapEnvelopeXml,HttpWebRequest webRequest)at Limoallover.dawUpdateDriverStatus(String apiId,String apiKey,String idTrip ,String tripCode,String statusCode)at Limoallover.UpdateJobStatus(String Lat,String Lng,Int32 DriverID,Int32 nJobStatus,Int32 nJobId,String Company ID,String idTrip,String tripCode,String statusCode)
private HttpWebRequest CreateWebRequestUS(string url, string action)
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Headers.Add("SOAPAction", action);
webRequest.ContentType = "text/xml;charset=\"utf-8\"";
webRequest.Accept = "text/xml";
webRequest.Method = "POST";
return webRequest;
}
private XmlDocument CreateSoapEnvelopeUS(string apiId, string apiKey, string idTrip, string tripCode, string statusCode)
{
XmlDocument soapEnvelop = new XmlDocument();
string xml = "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"; …Run Code Online (Sandbox Code Playgroud) 我在twitter bootstrap中遇到选择下拉按钮的问题.它发生在我在机器上安装的两个浏览器(IE11,Chrome)中,并且它不仅限于"我的网站".
以下是bootstrap网站(操作系统:Windows 8.1 Broswer:Chrome)的屏幕截图(http://getbootstrap.com/css/#forms-controls):

我检查了控制台窗口,所有资源都正确加载.
任何人都可以帮助我解决为什么会这样做/要解决的步骤?
我Encrypt=yes在SQL Server连接字符串中使用,因为我需要加密TCPIP流量,但在打开连接时出现错误:
A connection was successfully established with the server, but then an error
occurred during the pre-login handshake. (provider: SSL Provider, error: 0 -
The certificate's CN name does not match the passed value.)
Run Code Online (Sandbox Code Playgroud)
有任何建议如何解决这个问题?我假设我的服务器之间需要某种证书关系,但不知道从哪里开始.
我需要两个连接,一个连接到SQL 2000服务器,一个连接到2005服务器.
我正在使用excel中的VBA代码,我有以下代码
Set strModel = Right(rng.Offset(0, 13).Value, Len(rng.Offset(0, 13).Value) - 4)
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我得到一个编译错误来调试并读取Object Required.这要求我做什么?
这是一段更大的代码:
strHSLtemp = "C:\Users\Desktop\To Do\MidDay Orders Macro Tool\Temp Files\HSL Orders Temp.xlsx"
wbHSLtemp = Dir(strHSLtemp)
Set wbHSLtemp = Workbooks.Open(strHSLtemp)
Set wsHSLtemp = wbHSLtemp.Sheets(1)
Dim arrModels() As String, strModel As String, blMultipleModels As Boolean, rngModel As range, lngModels As Long
Dim rng As range
Set strModel = Right(rng.Offset(0, 13).Value, Len(rng.Offset(0, 13).Value) - 4) 'strip off leading "HSL-"
strModel = Replace(strModel, " / ", "/") 'get rid of the …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码在PowerShell(v4.0 Windows 8.1)中运行Access 2010宏:
$Access = New-Object -com Access.Application
$Access.OpenCurrentDatabase("SomePath", $False, "Password")
$Access.Run("SomeProc")
$Access.CloseCurrentDatabase()
$Access.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($Access)
Remove-Variable Access
Run Code Online (Sandbox Code Playgroud)
我在行上$Access.Run("SomeProc")发现错误,指出没有足够的参数:
使用"1"参数调用"Run"的异常:"参数数量无效.(HRESULT异常:0x8002000E(DISP_E_BADPARAMCOUNT))"
该过程SomeProc不需要任何参数.
我已经阅读了关于run方法的msdn文章,只需要一个参数.
我也尝试过这种解决方法,但也因为一个无关的原因而无法工作.
有谁知道错误的原因是什么以及如何使该方法工作?
我正在使用VBA中的ADO执行存储过程.我正在尝试使用SQL Server 2008中的存储过程的结果填充记录集.下面的VBA示例:
Public Function DoSomething() As Variant()
Dim oDB As ADODB.Connection: Set oDB = New ADODB.Connection
Dim oCM As ADODB.Command: Set oCM = New ADODB.Command
Dim oRS As ADODB.Recordset
oDB.Open gcConn
With oCM
.ActiveConnection = oDB
.CommandType = adCmdStoredProc
.CommandText = "spTestSomething"
.NamedParameters = True
.Parameters.Append .CreateParameter("@Param1", adInteger, adParamInput, , 1)
Set oRS = .Execute
End With
If Not oRS.BOF And Not oRS.EOF Then 'Error thrown here'
DoSomething = oRS.GetRows()
Else
Erase DoSomething
End If
oRS.Close
Set oRS = …Run Code Online (Sandbox Code Playgroud) c# ×4
vba ×3
.net ×2
sql-server ×2
.net-2.0 ×1
ado ×1
asp.net ×1
credentials ×1
css ×1
dns ×1
excel ×1
excel-vba ×1
html ×1
integer ×1
intersection ×1
long-integer ×1
macros ×1
ms-access ×1
powershell ×1
recordset ×1
sockets ×1
sql ×1
ssl ×1
web-services ×1