3
                      (平面文件位置)
                    桑巴分享 | Windows 共享
(SSIS) _______________________________
                | |
XP 32 位 | 作品 | 作品
                | |
2003 服务 32 位 | 作品 | 作品
                | |
Vista 64 位 | 错误 | 作品
                | |
赢 7 64 位 | 错误 | 作品
                | |
2008 服务 64 位 | 错误 | 作品

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

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

验证错误。解析和导入目录平面文件:MySSISPackage:连接中指定的文件名“\\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) 从 32 位环境(Windows XP 32 位、Windows Server 2003 32 位)使用 SSIS 访问文件没有问题。

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

4

8 回答 8

6

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

例如:\\server\share\foder\subfold1\subfold2\file.csv <== 我们需要在这里访问“subfold2”的访问权限没有被继承,并且该帐户无权访问 \\server\share\

所以我们给了 \\server\share\ 的访问权限,它解决了这个问题。

于 2010-06-04T18:50:41.210 回答
2

在 BIDS (visual studio SSIS) 中,如果您转到 SSIS 菜单(在顶部栏上),然后取消选中“脱机工作”。

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

于 2010-12-08T09:41:17.440 回答
2

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

于 2013-02-27T01:05:05.177 回答
2

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

于 2013-07-25T17:15:54.897 回答
1

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

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

于 2010-03-04T14:22:30.133 回答
1

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

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

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

第 2 步:禁用 IP v.6

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

于 2010-06-05T14:15:13.350 回答
1

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

于 2011-01-18T23:13:48.450 回答
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 代理解决了这个问题。

于 2016-01-20T19:38:26.273 回答