SSIS包中的平面文件连接管理器显示“必须选择有效文件名”

时间:2010-03-03 14:22:14

标签: visual-studio visual-studio-2008 ssis flat-file

                      (Flat File Location)
                    Samba Share | Windows Share
(SSIS)           _______________________________
                |               |
XP 32bit        |  Works        |  Works
                |               |
2003 Serv 32bit |  Works        |  Works
                |               |
Vista 64bit     |  ERROR        |  Works
                |               |
Win 7 64bit     |  ERROR        |  Works 
                |               |
2008 Serv 64bit |  ERROR        |  Works

我在VS 2008中创建了一个SSIS包,它从共享文件夹中解析一个平面文件,并将记录放入SQL Server数据库中。

我最近在新工作站上安装了Windows 7和VS 2008。当我从TFS导入包并打开它时,我收到错误

  

验证错误。解析和导入   目录平面文件:MySSISPackage:The   文件名“\\ shared \ flatfile.txt”   在连接中指定的不是   有效的。

当我打开平面文件连接管理器编辑器时,出现错误说明:

  

必须选择有效的文件名

我可以浏览并从编辑器中选择文件,但由于此错误,我无法更改任何属性,或远离“常规”选项卡。

如果我回到我的笔记本电脑(Windows XP),首次创建软件包,则没有错误。两个工作站都位于同一个域中,我使用相同的凭据登录。

关于为什么我会从一个工作站而不是另一个工作站收到此错误的任何想法?


更新: 如果我从正在运行的工作站获取.dtsx包并将其加载到服务器上的SSIS中,则在尝试运行时会出现以下错误:

  

错误:连接中指定的文件名“\\ shared \ flatfile.txt”无效。

和...

  

错误:连接“MySSISPackage”验证失败。

和...

  

错误:文件名属性无效。文件名是设备或包含无效字符。


更新2

a)我试图从平面文件中提取的共享文件夹是Unix机器上的Samba共享。

b)如果我在任何64位平台(Windows 7 64位,Vista 64位,Windows Server 2008)上使用SSIS访问该文件,我会收到错误“必须选择有效的文件名”。

c)使用SSIS从32位环境(Windows XP 32位,Windows Server 2003 32位)访问文件没有问题。

d)如果我将文件移动到Windows服务器上的共享文件夹,64位SSIS会识别该文件。

8 个答案:

答案 0 :(得分:6)

我们遇到了同样的问题。搜索一段时间后,我们发现所使用的帐户可以访问子目录,但不能访问共享。看起来您的帐户需要从当时最高目录继承访问权限。

例如为: \\ server \ share \ foder \ subfold1 \ subfold2 \ file.csv< ==我们需要在这里访问 对“subfold2”的访问不会被继承,并且该帐户无权访问 \\服务器\共享\

所以我们给了\\ server \ share \的访问权限,它修复了问题。

答案 1 :(得分:2)

在BIDS(visual studio SSIS)中,如果你进入SSIS菜单(在顶部栏),并取消选中“离线工作”。

在屁股中有一个正确的痛苦,我得到了http://www.sqldev.org/sql-server-integration-services/flat-file-connection-manager-problem-32774.shtml

中的修正提示

答案 2 :(得分:2)

我找到了一个解决方案,只需将文件路径更改为可以更好地消化的文件路径 - 命名驱动器工作。 例: 文本文件位于\ server \ filepath \ filename.txt错误上 我将文件复制到c:\ filepath \ filename.txt 它运作良好。

答案 3 :(得分:2)

这里还有另一种可能性,对我来说同样问题的解决方案是右键单击连接管理器,选择DelayValidation = True而不是默认值false。我的痛点是使用SSIS配置来告诉文件在哪里,BIDS不喜欢网络共享文件路径。

答案 4 :(得分:1)

您是将它加载到工作站上的SQL Server中,还是作为中央服务器?

如果在工作站上,SQL Server是否在两台计算机上的同一帐户下运行?新计算机上的SQL服务可能在不同的帐户下运行,因此无法访问该文件。

答案 5 :(得分:1)

这听起来像是连接到CIFS共享的问题。

在Windows 7& Server 2008有几个我们必须更改的设置,以允许SSIS服务帐户连接到我们环境中的CIFS共享。我会一次尝试这一步中的每一步,因为有些情况下不需要所有步骤。

第1步: 管理工具 - >本地安全政策 - >安全设置 - >本地政策 - >安全选项 - >网络安全:LAN Manager身份验证级别 将此值更改为:发送LM和NTLM - 如果已协商

,则使用NTLM2会话安全性

第2步: 禁用IP v.6

第3步: 通过Netbios强制TCP / IP。

答案 6 :(得分:1)

我有类似的问题。我做的是在解决方案资源管理器中我右键单击项目名称和选定的属性。然后我单击Debugging并设置Run64BitRuntime property ='False'。 Excel文件是32位,因此在这种情况下,将SSIS作为64位应用程序运行将不起作用。

答案 7 :(得分:1)

我在访问Windows 2008共享的作业中运行SSIS包的SQL 2008 R2框出现此问题。授予对共享和特定文件夹的访问权限不起作用。我一直收到错误:

The file name property is not valid. The file name is a device or contains invalid characters.

在花了太多时间进行故障排除后,我发现重启SQL Server代理修复了这个问题。