SSMS 18.6 crashes on startup - sql-server

Running SSMS 18.6 causes the program to launch, hang, and then crash. There is no error message given, the program simply terminates before any action is taken and nothing is connected.
I've uninstalled and deleted all files for SSMS, Visual Studio, and SQL Complete.
I tried the 18.6 and 18.5.1 versions of SSMS to no avail.
From https://dba.stackexchange.com/questions/237086/sql-server-management-studio-18-wont-open-only-splash-screen-pops-up/237087#237087 :
I have tried copying the Interop.8.0.dll file from privateassemblies into public. No effect. The line in the config file mentioned here is already commented out in the recent release of SSMS.
From Sql Server Management Studio closes immediately after startup :
I have tried renaming or deleting the package file listed here and removed the relevant registry key. This causes SSMS not to open at all and Windows to issue an alert sound. No other effect.
From https://social.msdn.microsoft.com/Forums/silverlight/en-US/9d0e2459-eb74-46e8-a983-05ae2ba18977/ssms-crashes-on-startup?forum=sqltools :
I tried to repair .NET framework. No effect.
I was only able to install and successfully connect on SSMS version 17.9.1
I can provide Event Viewer details if anyone is willing to help me troubleshoot. I have a .NET Runtime error and two application errors- one is event name CLR20r3 and the other is APPCRASH. Happy to provide more information if needed.

While I can't speak to the exact reason it happened, I found a solution. Whatever the issue was, I discovered it was user specific and limited to my machine. Other users were able to access SSMS as normal on my machine as was I on theirs.
I happened to remember that the AppData folder exists and is just hidden, so I used an administrator account to copy that from a working user and rewrite the files in both of mine that were not used in some background process. This allowed me to once again access SSMS both as my regular user and with my elevated administrator account.

I had this same issue (it happened all of a sudden perhaps due to a windows update). I also tried all the other solutions listed above, but the only thing that worked for me was to uninstall and then reinstall version 7.9.1 like the original poster recommended.
In my case I only have 1 user on the computer, so the other user accounts being able to access was not applicable.

Related

CS2001 Missing AssemblyAttributes.cs when executing SSIS package deployed to the server

I created SSIS packages and used the Integration Services Deployment Wizard to deploy it out to the server. I'm manually going to the Integration Services Catalog access through SQL Server 2012 and right-clicking and executing my package.
However, the package keeps failing and I'm getting the following errors when I check the execution report's messages.
They appear to be failing on data tasks where I have script components.
Assign :Error: CS2001 - Source file 'C:\Windows\TEMP.NETFramework,Version=v4.0.AssemblyAttributes.cs' could not be found, CSC, 0, 0
Assign :Error: Failed to compiled scripts contained in the package. Open the package in SSIS Designer and resolve the compilation errors.
This answer is a more detailed version of UberDoodles answer.
In Windows Explorer.
Navigate to C:\Windows\Temp\
Right click the folder and select properties
Go to tab Security, choose Advanced
On the default tab Permissions, choose Change Permissions
For the relevant Permission entry, choose edit.
By default, I had 'allow' checked for Traverse folder / execute file, Create files / write data and Create folders / append data.
Also check 'allow' for List folder / read data and Take ownership.
Press OK, the window closes
Press Apply and confirm anything you need.
Additionally, the logged in user had already Full control, but when I changed this for the entry 'Users', it worked for me.
(based on microsoft file/folder permissions).
I had the same problem today, just on SQL 2016.
For me it helped to change the target server version in Visual Studio project properties from SQL Server 2012 to SQL Server 2016.
I was investigating the same issue, and I came across a solution here :
https://social.msdn.microsoft.com/Forums/vstudio/en-US/73e67f3a-c575-4c73-a71d-ed7a2aeabb50/csc-error-cs2001-source-file-cwindowstempnetframeworkversionv40assemblyattributescs?forum=msbuild
Basically, the account which the package runs under needs to have full permissions to the C:\Windows\Temp\ folder, so that it can create temporary classes.
It worked for me :)
I had the same problem. I first used Eric G. response and added the List and Read permission to the c:\windows\temp. After I got everything working I went back and removed that permission. I then redeployed my solution from Visual Studio, this time designating the deployment target as SQL Server 2014 (which was the environment I was using) using Martin's solution. I then reran the process, and it worked with the List and Read removed.
I kept it using Martin's solution, as I don't like to have special permissions granted if I don't need them.
Good Luck
[Visual Studio 2017 15.9.16]
I just restarted Visual Studio as Administrator and the issue disappeared, which confirms the permissions idea of the answers above but spared me all work.
It's not a quirk though, as per this question and its answer you need that kind of permission for several tasks, like profiling and debugging under certain conditions.
For the sake of completeness, this blog says you might incur in some security contraindication if run VS as administrator when opening third-party solutions.

Error installing SQL Server 2008 R2 any version. Error code: 1605

SQL Server Setup has encountered the following error:
MsiGetProductInfo failed to retrieve ProductVersion for package with Product Code = '{DF167CE3-60E7-44EA-99EC-2507C51F37AE}'. Error code: 1605..
What I've done so far:
Had to re-install Windows 7 because I kept getting a pop up that said my windows was unregistered, which it wasn't (known bug) so I re-installed as per MS recommendation.
Un-installed SQL Server 2008 + ran Microsoft Fix It tool.
Tried to re-install.
After I got the error I deleted all the registry entries per instructions available where others have posted this same problem.
When I continued to get the error I renamed the registry directory UpgradeCodes to UpgradeCodes.old.
I've rebooted after every step and I've repeated this many times...
In all cases when I try to re-install it fails with Error code: 1605. At this point when I search the registry for the reversed key it is not found. It's gone.
Not sure what to do next.
Any suggestions would be appreciated. Thanks
I have the same problem and following method which I got it from http://www.thewindowsclub.com/ worked for me:
Method 2
This method is a little risky but should work at the first attempt. Make sure you don’t reboot the system until we complete the process. In this method we will just make the UpgradeCodes unusable until we finish the SQL install.
First setup is exit the install and shutdown all the applications
Then go toregistry and create a backup of the registry.
Now go to HKEY_Classes_Root\Installer\UpgradeCodes.
Right click on UpgradeCodes and click on Export and type in UC.reg and save it somewhere (Maybe Desktop)
Then right click again and click on rename and rename to UpgradeCodes.old
Now attempt to install SQL again. This time it should work in first try. Make sure you don’t reboot the system because sometime other application like MS Office might stop working. Once the installation is complete, close the installer and find the file you saved UC.reg and double click on it and click OK.
Now we have up the UpgradeCodes back again.

How do I disable The Just in Time Debugger?

Just provisioned a new server running IIS and Server 2012 and SQL Server 2012. I also installed SQL Server Management Studio tool so I can quickly inspect databases without the need to open a remote connection.
When I browse an ASP.NET sites remotely, I get a Just-in-time debgugger exception dialog when an error is encountered in addition to the yellow screen. The dialog stays up on the server and piles up unless I RDP and manually close all the dialog boxes.
The only way to disable this is by removing Visual Studio Shell 2010 (integrated) using the control panel. The side effect is that I can no longer use SSMS.
Most of the available solutions are outdated or don't work. The registry settings are no longer applicable and most articles concerning this issue are old. Microsoft's official documentation is a rat's nest of broken links. Moreover, many users are confusing IE's script debugging dialog with this issue. Although they are related and similar, this specific issue is tied to Visual Studio's runtime environment.
Any ideas?
ASIDE: I can't believe Microsoft has this "feature" on a product that is installed on a production server. I am just floored by the incompetence of a multi-billion dollar corporation. I've seen my question asked since at least since 2005 with no official solution that works. I just have to ask one last time for sanity checking. I want to make sure I'm not the one who is "thick" in the head here.
To disable Just-In-Time debugging by editing the registry
In the Start menu, click Run.
In the Run dialog box, type regedit, then click OK.
In the Registry Editor window, locate and delete the follow registry keys:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
If your computer is running a 64-bit operating system, delete the following registry keys also:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\WindowsNT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
Take care not to accidentally delete or change any other registry keys.
Instead of deleting it, you can also just (temporarily) rename the AeDebug key for the bitness of your choice to something else, e.g. AeDebug-disable!
For server 2012, IIS, and SSMS 2014 we tried all three registry three deletions and those did not work.
What did work was old school renaming the JIT Debug executable.
Renamed these files.
C:\WINDOWS\system32\vsjitdebugger.exe
C:\Windows\SysWOW64\vsjitdebugger.exe
Renamed this folder
C:\Program Files\Common Files\Microsoft Shared\VS7Debug
As a follow-up to nfox's answer, I've created a registry file that you can simple use instead of searching manually through regedit.exe.
1.) Copy this script to your clipboard:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Debugger"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"DbgManagedDebugger"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Debugger"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
"DbgManagedDebugger"=-
2.) Save it to a file with the .reg extension:
E.g. to a file named
C:\Users\<user name>\Desktop\DisableJit.reg
3.) Double click the file
After confirming the appearing message box, the keys are getting deleted.
5.) Alternatively: Download file
If this is too much effort, you can download the registry file from here:
disable-the-just-in-time-debugger-windows-64-bit.reg
disable-the-just-in-time-debugger-windows-64-bit.zip (As a ZIP)
Download and then double-click it.
This tip was simply taken from the MSDN article "Just-In-Time Debugging in Visual Studio".
The syntax on how to delete registry keys via a .reg file was taken from the MSDN KB article "How to add, modify, or delete registry subkeys and values by using a .reg file".
You should be able to disable Jist-In-Time debugging using the Debug options dialog inside Visual Studio. The registry keys are also well documented here.
See:
http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx
Aside: I think it's not a wise thing to install a management studio on a production server. This is what management workstations are for. Remote connections from a management station can be pre-configured and stored so that it doesn't take much effort. That way you can keep your production environment clean.

Value cannot be null, Parameter name: viewInfo

After installing SP2 to an existing SQL Server 2008 R2 I lost access to all my databases and started facing the error in the screenshot.
Any ideas?
Check the environment value for Temp and TMP.
C:\Users\buck>set t
TEMP=C:\Users\buck\AppData\Local\Temp\2
TMP=C:\Users\buck\AppData\Local\Temp\2
Make sure the directory listed exist and your id has appropriate permission to write to that directory. Alternatively, through the control panel (Control Panel-> System and Security-> System -> Advanced system settings), you can change the default directories that are assigned to TEMP and TMP.
When I've seen this issue, it is usually because the Drive that SSMS is installed on has run out of free space. Deleting some old Log files clears the issue up.
Doing that quick check might be worthwhile before going forward with a re-install.
I got this error on our remote shared server. Turned out that our C drive did not have any space left.
I got it working by asking my colleague to close his SQL Server Management Studio session and it cleared up 7 GB right away! I could login then! Woot woot!
Right click on the SSMS icon and click 'run as administrator'. At the SSMS console verify that the error is gone by clicking on the 'Databases' tree node. The error should now be permanently fixed and you do not need to run SSMS as admin anymore. Next time just start SSMS normally and it should work fine.
Changing the temp variables did not resolve. Drive with SMMS installed has 34% free space.
However, using Run > %temp% > it would error out as "C:\%username%\appdata\local\temp\4 was missing" (this is not listed in my TEMP/TMP variables).
Quick solution was to add sub folder for "4" in c:\%username%\appdata\local\temp\ and now able to open SMMS without issue.
When running into this I found it was related to the environment temp folder (TMP Temp).
I had tried adding the "2" folder to this location with no success.
C:\Users\USER\AppData\Local\Temp\2
Try typing %temp% in file explorer and see if it takes you to a valid location. I found that I received an error because it was trying to go to a "4" location.
C:\Users\USER\AppData\Local\Temp\4
I created a folder named "4" in the Temp folder, reran SSMS, and it started working again.
A quick google suggest that apparently it is a bit common issue. It looks like that it is not an issue of SQL Server itself but actually .NET issue And most common (and quick) solution I found is to reinstall SSMS.
I've found that if you are upgrading an iseries odbc driver on a sql cluster. Lots of times you will run into this issue exactly. Renaming the machine.config in both the 32 bit and 64 bit folders does the trick. we currently upgraded from version 12 or 6.1 to 7.1 or 13 as the version 12 was causing a bug check on one of our SQL instances. Upgraded, and the issues all went away.
Cheers,
According to the following link:
https://connect.microsoft.com/SQLServer/feedback/details/573771/value-cannot-be-null
I just checked that my user is local admin, then i logged off and logged back in.
After that step i haven't received this error again.
I was receiving this exact error and thought I'd have a go at running the repair.
Well the repair didn't resolve the issue however it did tell me that it was unable to access machine.config in C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG - found it didn't exist! There was another file machine.config.default
So had a stab at copying, renaming to .config and viola resolved it and everything working like a champion.
I got the same error in SSMS and I found this link and followed the steps as it mentioned.
The problem appeared to be when accessing the contents of a settings file. The file had invalid entries. This file is CurrentSettings-. The fix for this is as shown below:
On the server Go to start menu–>Your profile–>Documents–>SQL Server Management Studio–>Settings (this is the location of the file specified above)
Delete all files from this folder
Restart sqlserver services
Launch the SSMS and this error is gone. You will be able to expand all the folders and perform regular SSMS activities without this error.
Once I performed these steps and restarted my PC this error was gone and SSMS worked fine.
I just faced this issue and resolved it immediately in 5 mins. Just go to Control Panel and Run Troubleshooting tool on Programs.
**PATH** Control Panel\All Control Panel Items\Troubleshooting\Programs
It will give you the list of installed programs which may have any issue. Scroll down that list and find 'SQL Server Management Studio' and run troubleshooting process on that. It will hopefully fix you issue.
I gets this messages many times and every time it is resolved by different solutions below few of it.
Solution: Clear cache from temp folder, Press windows + R => type "%temp%" => Delete all the files from temp folder... And try weather it works and opens ssms successfully
Solution: create folder named "2" in this above mentioned temp folder location... And try weather it works and opens ssms successfully.
Solution:create folder named "4" in this above mentioned temp folder location... And try weather it works and opens ssms successfully.
Solution: It may cause because of low disk space in drive ssms is installed... so free some space...And try weather it works and opens ssms successfully.
Solution: Format is the last solution...

SqlServer is in script upgrade mode

Vista just finished one of its many updates. After restarting my computer I try connecting to SqlServer2008 instance with Sql Server Management Studio and I get this error:
Error connecting to '...\MSSQLSERVER2008'.
Additional information:
Login failed for user '...'. Reason: Server is in script upgrade mode. Only administrator can connect at this time. (Microsoft SQL Server, Error: 18401).
Pressing help gets me to an internet page saying there's no additional information.
Thx Vista & Updates. Anyone an idea because on the internet I can't find anything about this issue.
It appears This Guy was having the same problems as you and his only suggestion was to wait a few minutes before trying to log in again.
I have yet to see any type of Microsoft documentation about this, nor have I seen any forum posts which came to any sort of resolution concerning the same problem.
Check your event viewer. I had the same problem and found that (in my case) it was looking for a directory that didn't exist to perform an upgrade script. NO hint that there was any sort of problem in the dialog, but the event viewer showed clearly what the problem was.
jim
I had the same problem. Waiting until update was done did not help. Solution was, (after checking Windows eventlog) to set the folder rights. SQL-Express had no rights on the database folder, why ever. Something has mixed up the rights during the upgrade from WinXP to Win 7. That was it.
Adding a comment to this page since this is the top Google result for "script upgrade mode". It seems that a number of things can cause a SQL Server DB to go into this mode. In our shop we've run into these two cases in the past months:
Log shipping - Can't recall at what point of the process exactly the DB went into this mode, iirc it was when bringing it back up. The solution was just to wait it out.
Hard drive full - The DB went into this mode when it ran out of space. We're currently clearing up the drive, will come back with an update if waking it up turns out to be challenging.
Update: After freeing up disk space, it was a simple matter of setting the DB "Offline" and then "Online" to bring it back up.
We had the same issue, but needed to know what was going on in the background.
The db's were put into recovery mode, hence they had to recover. To assist we went to the SQL Server error log located where the system files (normally master, model, msdb...) are located, but under the log folder. In the ERRORLOG, we did a find on the word recovery and could watch the db's percentage recovered. Everything recovered normally, but it was much longer than expected.
The Reason for this is that the system reboot happens with important\necesssary softwares loaded and does all other operation later so that the booting happens faster.
Here in your case, the sql booting is happening as the start of SQL is not needed for system to start. I hope you are aware of DAC account(Dedicated Administrator Connection, Link) who has seperate connectivity and has ability to resolve issues even the whole SQL server is not responing. The SQL server is asking you either to wait or open the SQL with DAC account and stop the SQL update.
Solutions:
1) Wait until backround update completes
2) Open SQL using DAC account and kill all running processes

Resources